
<!-- saved from url=(0054)https://www.reaper.fm/sdk/reascript/reascripthelp.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>
REAPER API functions
</title>
<script type="text/javascript">
function set_class_style(c,s) { 
  var list = document.getElementsByClassName(c);
  for (i=0;i<list.length;i++) {
    list[i].style.display = s; 
  }
}
function set_class_innerHTML(c,s) { 
  var list = document.getElementsByClassName(c);
  for (i=0;i<list.length;i++) {
    list[i].innerHTML = s; 
  }
}
function setdocview(v) {
  var list = new Array('c_doc', 'c_func', 'c_funcs',
                       'l_doc', 'l_func', 'l_funcs',
                       'e_doc', 'e_func', 'e_funcs',
                       'p_doc', 'p_func', 'p_funcs');
  var i;
  set_class_style('all_view', v == '' ? 'inline' : 'none');
  for (i=0;i<list.length;i++) {
    set_class_style(list[i], (v == '' || list[i].slice(0,1) == v) ? 'block' : 'none'); 
  }
  set_class_innerHTML('aclick', v=='' ? 'all' : "<a href=\"#\" onClick=\"setdocview('')\">all</a>");
  set_class_innerHTML('cclick', v=='c' ? 'C/C++' : "<a href=\"#c\" onClick=\"setdocview('c')\">C/C++</a>");
  set_class_innerHTML('eclick', v=='e' ? 'EEL' : "<a href=\"#e\" onClick=\"setdocview('e')\">EEL</a>");
  set_class_innerHTML('lclick', v=='l' ? 'Lua' : "<a href=\"#l\" onClick=\"setdocview('l')\">Lua</a>");
  set_class_innerHTML('pclick', v=='p' ? 'Python' : "<a href=\"#p\" onClick=\"setdocview('p')\">Python</a>");
}
function onLoad() {
  if (window.location.hash == '#c') setdocview('c');
  else if (window.location.hash == '#e') setdocview('e');
  else if (window.location.hash == '#l') setdocview('l');
  else if (window.location.hash == '#p') setdocview('p');
}
</script>
<meta id="Reverso_extension___elForCheckedInstallExtension" name="Reverso extension" content="2.2.197"></head><body onload="onLoad()" style="font-family:&quot;Anonymous Pro&quot;;" class="nimbus-is-editor">
<table width="100%"><tbody><tr><td><p align="left"></p><h1>Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight> API</h1><p></p></td>
<td><p align="right"><font size="1">Generated by <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> v5.962/OSX64</font></p></td></tr></tbody></table><br>
<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> provides an API (advanced programming interface) for users and third parties to create extended functionality. API functions can be called from a compiled C/C++ dynamic library that is loaded by <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>, or at run-time by user-created Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s that can be written using <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>'s own editor.<br><br>
Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s can be written in <b>EEL</b>, a specialized language that is also used to write JSFX and Video Processors in <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>; <b>Lua</b>, a popular <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>ing language; or <b>Python</b>, another <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>ing language. EEL and Lua are embedded within <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> and require no additional downloads or settings. Python must be downloaded and installed separately, and enabled in <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> preferences.<br><br>
Learn more about Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>: <a href="http://www.cockos.com/reaper/sdk/reascript/reascript.php" target="_blank">http://www.cockos.com/<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>/sdk/rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>/rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>.php</a>.<br><br>
View: 
[<span class="aclick">all</span>] [<span class="cclick"><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#c" onclick="setdocview(&#39;c&#39;)">C/C++</a></span>] [<span class="eclick"><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#e" onclick="setdocview(&#39;e&#39;)">EEL</a></span>] [<span class="lclick"><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#l" onclick="setdocview(&#39;l&#39;)">Lua</a></span>] [<span class="pclick"><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#p" onclick="setdocview(&#39;p&#39;)">Python</a></span>]<br>
<div class="e_doc"><br><hr><h3>Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/EEL API</h3>
For information on the EEL2 language, please see the <a href="https://www.cockos.com/EEL2/">EEL2 User Guide</a><br><br>
Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/EEL <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>s can call API functions using <code>functionname()</code>.<br><br>
Parameters that return information are effectively passed by reference, not value.<br><br>
Examples:<br>
<table cellspacing="10"><tbody><tr><td><code>
// function returning a single (scalar) value:<br>
sec = <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#parse_timestr">parse_timestr</a>("1:12");<br><br>
// function returning information in the first parameter (function returns void):<br>
<a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjectPath">GetProjectPath</a>(#string);<br><br>
// lower volume of track 3 by half:<br>
tr = <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrack">GetTrack</a>(0, 2);<br>
<a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackUIVolPan">GetTrackUIVolPan</a>(tr, vol, pan);<br>
<a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMediaTrackInfo_Value">SetMediaTrackInfo_Value</a>(tr, "D_VOL", vol*0.5);<br></code></td></tr></tbody></table><br>
Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/EEL can import functions from other rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>s using <code>@import filename.eel</code> -- note that only the file's functions will be imported, normal code in that file will not be executed.<br><br>

In addition to the <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#function_list">standard API functions</a>, Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>/EEL also has these built-in functions available:<br><br>
<a name="eel_list"></a>
<code><table>
<tbody><tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_abs">abs</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fgets">fgets</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_drawnumber">gfx_drawnumber</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_set">gfx_set</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_memset">memset</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_strcmp">strcmp</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_acos">acos</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_floor">floor</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_drawstr">gfx_drawstr</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_setcursor">gfx_setcursor</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_min">min</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_strcpy">strcpy</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_asin">asin</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fopen">fopen</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_getchar">gfx_getchar</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_setfont">gfx_setfont</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_printf">printf</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_strcpy_from">strcpy_from</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_atan">atan</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fprintf">fprintf</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_getdropfile">gfx_getdropfile</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_setimgdim">gfx_setimgdim</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_rand">rand</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_strcpy_substr">strcpy_substr</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_atan2">atan2</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fread">fread</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_getfont">gfx_getfont</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_setpixel">gfx_setpixel</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_runloop">runloop</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_stricmp">stricmp</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_atexit">atexit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_freembuf">freembuf</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_getimgdim">gfx_getimgdim</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_showmenu">gfx_showmenu</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_sign">sign</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_strlen">strlen</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_ceil">ceil</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fseek">fseek</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_getpixel">gfx_getpixel</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_transformblit">gfx_transformblit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_sin">sin</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_strncat">strncat</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_convolve_c">convolve_c</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_ftell">ftell</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_gradrect">gfx_gradrect</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_triangle">gfx_triangle</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_sleep">sleep</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_strncmp">strncmp</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_cos">cos</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fwrite">fwrite</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_init">gfx_init</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_update">gfx_update</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_sprintf">sprintf</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_strncpy">strncpy</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_defer">defer</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_get_action_context">get_action_context</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_line">gfx_line</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_ifft">ifft</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_sqr">sqr</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_strnicmp">strnicmp</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_eval">eval</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_variables">gfx VARIABLES</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_lineto">gfx_lineto</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_ifft_real">ifft_real</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_sqrt">sqrt</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_tan">tan</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_exp">exp</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_arc">gfx_arc</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_loadimg">gfx_loadimg</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_invsqrt">invsqrt</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_stack_exch">stack_exch</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_tcp_close">tcp_close</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_extension_api">extension_api</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_blit">gfx_blit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_measurechar">gfx_measurechar</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_log">log</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_stack_peek">stack_peek</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_tcp_connect">tcp_connect</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fclose">fclose</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_blit">gfx_blit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_measurestr">gfx_measurestr</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_log10">log10</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_stack_pop">stack_pop</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_tcp_listen">tcp_listen</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_feof">feof</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_blitext">gfx_blitext</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_muladdrect">gfx_muladdrect</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_loop">loop</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_stack_push">stack_push</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_tcp_listen_end">tcp_listen_end</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fflush">fflush</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_blurto">gfx_blurto</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_printf">gfx_printf</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_match">match</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_str_delsub">str_delsub</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_tcp_recv">tcp_recv</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fft">fft</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_circle">gfx_circle</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_quit">gfx_quit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_matchi">matchi</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_str_getchar">str_getchar</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_tcp_send">tcp_send</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fft_ipermute">fft_ipermute</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_clienttoscreen">gfx_clienttoscreen</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_rect">gfx_rect</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_max">max</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_str_insert">str_insert</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_tcp_set_block">tcp_set_block</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fft_permute">fft_permute</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_deltablit">gfx_deltablit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_rectto">gfx_rectto</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_mem_get_values">mem_get_values</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_str_setchar">str_setchar</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_time">time</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fft_real">fft_real</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_dock">gfx_dock</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_roundrect">gfx_roundrect</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_mem_set_values">mem_set_values</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_str_setlen">str_setlen</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_time_precise">time_precise</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_fgetc">fgetc</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_drawchar">gfx_drawchar</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_gfx_screentoclient">gfx_screentoclient</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_memcpy">memcpy</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_strcat">strcat</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#eel_while">while</a> &nbsp; &nbsp; </td>
</tr>
</tbody></table></code>
</div><div class="l_doc"><br><hr><h3>Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/Lua API</h3>
Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/Lua <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>s can call API functions using <code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.functionname()</code>.<br><br>
Some functions return multiple values. In many cases, some function parameters are ignored, especially when similarly named parameters are present in the returned values.<br><br>

Examples:<br>
<table cellspacing="10"><tbody><tr><td><code>
-- function returning a single (scalar) value:<br>
sec = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.<a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#parse_timestr">parse_timestr</a>("1:12")<br><br>
-- function with an ignored (dummy) parameter:<br>
path = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.<a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjectPath">GetProjectPath</a>("")<br><br>
-- lower volume of track 3 by half:<br>
tr = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.<a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrack">GetTrack</a>(0, 2)<br>
ok, vol, pan = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.<a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackUIVolPan">GetTrackUIVolPan</a>(tr, 0, 0)<br>
<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.<a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMediaTrackInfo_Value">SetMediaTrackInfo_Value</a>(tr, "D_VOL", vol*0.5)<br></code></td></tr></tbody></table><br>
Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/Lua can import functions from other Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s using <code>require</code>.
If the files are not being found, it is probably a path problem (remember that lua paths are 
wildcard patterns, not just directory listings, see details 
<a href="http://www.lua.org/pil/8.1.html" target="_blank">here</a>).
<br><br>
In addition to the <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#function_list">standard API functions</a>, Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>/Lua also has these built-in functions available:<br><br>
<a name="lua_list"></a>
<code><table>
<tbody><tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_atexit">atexit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.clienttoscreen">gfx.clienttoscreen</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.getpixel">gfx.getpixel</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.quit">gfx.quit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.showmenu">gfx.showmenu</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_{reaper.array}.fft_real">{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.fft_real</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_defer">defer</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.deltablit">gfx.deltablit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.gradrect">gfx.gradrect</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.rect">gfx.rect</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.transformblit">gfx.transformblit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_{reaper.array}.get_alloc">{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.get_alloc</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_get_action_context">get_action_context</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.dock">gfx.dock</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.init">gfx.init</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.rectto">gfx.rectto</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.triangle">gfx.triangle</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_{reaper.array}.ifft">{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.ifft</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx_variables">gfx VARIABLES</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.drawchar">gfx.drawchar</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.line">gfx.line</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.roundrect">gfx.roundrect</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.update">gfx.update</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_{reaper.array}.ifft_real">{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.ifft_real</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.arc">gfx.arc</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.drawnumber">gfx.drawnumber</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.lineto">gfx.lineto</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.screentoclient">gfx.screentoclient</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_new_array">new_array</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_{reaper.array}.multiply">{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.multiply</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.blit">gfx.blit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.drawstr">gfx.drawstr</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.loadimg">gfx.loadimg</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.set">gfx.set</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_runloop">runloop</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_{reaper.array}.resize">{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.resize</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.blit">gfx.blit</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.getchar">gfx.getchar</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.measurechar">gfx.measurechar</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.setcursor">gfx.setcursor</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_{reaper.array}.clear">{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.clear</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_{reaper.array}.table">{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.table</a> &nbsp; &nbsp; </td>
</tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.blitext">gfx.blitext</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.getdropfile">gfx.getdropfile</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.measurestr">gfx.measurestr</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.setfont">gfx.setfont</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_{reaper.array}.convolve">{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.convolve</a> &nbsp; &nbsp; </td>

<td></td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.blurto">gfx.blurto</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.getfont">gfx.getfont</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.muladdrect">gfx.muladdrect</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.setimgdim">gfx.setimgdim</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_{reaper.array}.copy">{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.copy</a> &nbsp; &nbsp; </td>

<td></td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.circle">gfx.circle</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.getimgdim">gfx.getimgdim</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.printf">gfx.printf</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_gfx.setpixel">gfx.setpixel</a> &nbsp; &nbsp; </td>

<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#lua_{reaper.array}.fft">{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.fft</a> &nbsp; &nbsp; </td>

<td></td></tr>
</tbody></table></code>
</div><div class="p_doc"><br><hr><h3>Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/Python API</h3>
<b>libpython.dylib is installed.</b><br><br><br>
Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/Python requires a recent version of Python installed on this machine. Python is available from multiple sources as a <a href="http://www.python.org/download" target="_blank">free download</a>. Python 2.7 is normally included with macOS, and the dynamic library is usually in /usr/lib. If you update to a newer version of Python, it will be installed to a different directory. After installing Python, <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> may detect the Python dynamic library automatically. If not, you can enter the path in the Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight> preferences page, at Options/Preferences/Plug-Ins/Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>.<br><br>
Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/Python <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>s can call API functions using <code>RPR_functionname()</code>.<br><br>
All parameters are passed by value, not reference. API functions that cannot return information in the parameter list will return a single value. API functions that can return any information in the parameter list will return a list of values; The first value in the list will be the function return value (unless the function is declared to return void).<br><br>

Examples:<br>
<table cellspacing="10"><tbody><tr><td><code>
# function returning a single (scalar) value:<br>
sec = <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#parse_timestr">RPR_parse_timestr</a>("1:12")<br><br>
# function returning information in the first parameter (function returns void):<br>
(str) = <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjectPath">RPR_GetProjectPath</a>("", 512)<br><br>
# lower volume of track 3 by half (RPR_GetTrackUIVolPan returns Bool):<br>
tr = <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrack">RPR_GetTrack</a>(0, 2)<br>
(ok, tr, vol, pan) = <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackUIVolPan">RPR_GetTrackUIVolPan</a>(tr, 0, 0)<br>
# this also works, if you only care about one of the returned values:<br>
vol = <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackUIVolPan">RPR_GetTrackUIVolPan</a>(tr, 0, 0)[2]<br>
<a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMediaTrackInfo_Value">RPR_SetMediaTrackInfo_Value</a>(tr, "D_VOL", vol*0.5)<br></code></td></tr></tbody></table><br>
You can create and save modules of useful functions that you can import into other Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s. 
For example, if you create a file called rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>_utility.py that contains the function 
helpful_function(), you can import that file into any Python Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight> with the line:
<table cellspacing="10"><tbody><tr><td><code>
import rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>_utility
</code></td></tr></tbody></table>
and call the function by using:
<table cellspacing="10"><tbody><tr><td><code>
rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>_utility.helpful_function()
</code></td></tr></tbody></table><br>
Note that Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s must explicitly import the <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> python module, 
even if the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> is imported into another Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>:
<table cellspacing="10"><tbody><tr><td><code>
from <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>_python import *
</code></td></tr></tbody></table><br>
In addition to the <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#function_list">standard API functions</a>, Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>/Python also has these built-in functions available:<br><br>
<a name="python_list"></a>
<code><table><tbody><tr>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#python_atexit">atexit</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#python_defer">defer</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#python_runloop">runloop</a> &nbsp; &nbsp; </td>
</tr></tbody></table></code>
</div><a name="function_list"></a>
<br><hr><h3>API Function List</h3>
<code><table>
<tbody><tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#AddMediaItemToTrack">AddMediaItemToTrack</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePoint">GetEnvelopePoint</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#image_resolve_fn">image_resolve_fn</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjExtState">SetProjExtState</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#AddProjectMarker">AddProjectMarker</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePointByTime">GetEnvelopePointByTime</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#InsertAutomationItem">InsertAutomationItem</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetRegionRenderMatrix">SetRegionRenderMatrix</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#AddProjectMarker2">AddProjectMarker2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePointByTimeEx">GetEnvelopePointByTimeEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#InsertEnvelopePoint">InsertEnvelopePoint</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTakeStretchMarker">SetTakeStretchMarker</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#AddRemoveReaScript">AddRemoveRea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight></a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePointEx">GetEnvelopePointEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#InsertEnvelopePointEx">InsertEnvelopePointEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTakeStretchMarkerSlope">SetTakeStretchMarkerSlope</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#AddTakeToMediaItem">AddTakeToMediaItem</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeScalingMode">GetEnvelopeScalingMode</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#InsertMedia">InsertMedia</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTempoTimeSigMarker">SetTempoTimeSigMarker</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#AddTempoTimeSigMarker">AddTempoTimeSigMarker</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeStateChunk">GetEnvelopeStateChunk</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#InsertMediaSection">InsertMediaSection</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetToggleCommandState">SetToggleCommandState</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#adjustZoom">adjustZoom</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetExePath">GetExePath</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#InsertTrackAtIndex">InsertTrackAtIndex</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackAutomationMode">SetTrackAutomationMode</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#AnyTrackSolo">AnyTrackSolo</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetExtState">GetExtState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#IsMediaExtension">IsMediaExtension</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackColor">SetTrackColor</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#APIExists">APIExists</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetFocusedFX">GetFocusedFX</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#IsMediaItemSelected">IsMediaItemSelected</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackMIDILyrics">SetTrackMIDILyrics</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#APITest">APITest</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetFreeDiskSpaceForRecordPath">GetFreeDiskSpaceForRecordPath</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#IsProjectDirty">IsProjectDirty</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackMIDINoteName">SetTrackMIDINoteName</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ApplyNudge">ApplyNudge</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetFXEnvelope">GetFXEnvelope</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#IsTrackSelected">IsTrackSelected</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackMIDINoteNameEx">SetTrackMIDINoteNameEx</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ArmCommand">ArmCommand</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetGlobalAutomationOverride">GetGlobalAutomationOverride</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#IsTrackVisible">IsTrackVisible</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackSelected">SetTrackSelected</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Audio_Init">Audio_Init</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetHZoomLevel">GetHZoomLevel</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#joystick_create">joystick_create</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackSendInfo_Value">SetTrackSendInfo_Value</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Audio_IsPreBuffer">Audio_IsPreBuffer</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetInputChannelName">GetInputChannelName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#joystick_destroy">joystick_destroy</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackSendUIPan">SetTrackSendUIPan</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Audio_IsRunning">Audio_IsRunning</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetInputOutputLatency">GetInputOutputLatency</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#joystick_enum">joystick_enum</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackSendUIVol">SetTrackSendUIVol</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Audio_Quit">Audio_Quit</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetItemEditingTime2">GetItemEditingTime2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#joystick_getaxis">joystick_getaxis</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackStateChunk">SetTrackStateChunk</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#AudioAccessorValidateState">AudioAccessorValidateState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetItemProjectContext">GetItemProjectContext</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#joystick_getbuttonmask">joystick_getbuttonmask</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ShowActionList">ShowActionList</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#BypassFxAllTracks">BypassFxAllTracks</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetItemStateChunk">GetItemStateChunk</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#joystick_getinfo">joystick_getinfo</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ShowConsoleMsg">ShowConsoleMsg</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ClearAllRecArmed">ClearAllRecArmed</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetLastColorThemeFile">GetLastColorThemeFile</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#joystick_getpov">joystick_getpov</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ShowMessageBox">ShowMessageBox</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ClearConsole">ClearConsole</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetLastMarkerAndCurRegion">GetLastMarkerAndCurRegion</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#joystick_update">joystick_update</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ShowPopupMenu">ShowPopupMenu</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ClearPeakCache">ClearPeakCache</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetLastTouchedFX">GetLastTouchedFX</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#LICE_ClipLine">LICE_ClipLine</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SLIDER2DB">SLIDER2DB</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ColorFromNative">ColorFromNative</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetLastTouchedTrack">GetLastTouchedTrack</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Loop_OnArrow">Loop_OnArrow</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SnapToGrid">SnapToGrid</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ColorToNative">ColorToNative</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMainHwnd">GetMainHwnd</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Main_OnCommand">Main_OnCommand</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SoloAllTracks">SoloAllTracks</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountAutomationItems">CountAutomationItems</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMasterMuteSoloFlags">GetMasterMuteSoloFlags</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Main_OnCommandEx">Main_OnCommandEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Splash_GetWnd">Splash_GetWnd</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountEnvelopePoints">CountEnvelopePoints</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMasterTrack">GetMasterTrack</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Main_openProject">Main_openProject</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SplitMediaItem">SplitMediaItem</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountEnvelopePointsEx">CountEnvelopePointsEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMasterTrackVisibility">GetMasterTrackVisibility</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Main_SaveProject">Main_SaveProject</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#stringToGuid">stringToGuid</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountMediaItems">CountMediaItems</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMaxMidiInputs">GetMaxMidiInputs</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Main_UpdateLoopInfo">Main_UpdateLoopInfo</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#StuffMIDIMessage">StuffMIDIMessage</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountProjectMarkers">CountProjectMarkers</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMaxMidiOutputs">GetMaxMidiOutputs</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MarkProjectDirty">MarkProjectDirty</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_AddByName">TakeFX_AddByName</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountSelectedMediaItems">CountSelectedMediaItems</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItem">GetMediaItem</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MarkTrackItemsDirty">MarkTrackItemsDirty</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_CopyToTake">TakeFX_CopyToTake</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountSelectedTracks">CountSelectedTracks</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItem_Track">GetMediaItem_Track</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Master_GetPlayRate">Master_GetPlayRate</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_CopyToTrack">TakeFX_CopyToTrack</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountSelectedTracks2">CountSelectedTracks2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItemInfo_Value">GetMediaItemInfo_Value</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Master_GetPlayRateAtTime">Master_GetPlayRateAtTime</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_Delete">TakeFX_Delete</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountTakeEnvelopes">CountTakeEnvelopes</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItemNumTakes">GetMediaItemNumTakes</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Master_GetTempo">Master_GetTempo</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_EndParamEdit">TakeFX_EndParamEdit</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountTakes">CountTakes</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItemTake">GetMediaItemTake</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Master_NormalizePlayRate">Master_NormalizePlayRate</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_FormatParamValue">TakeFX_FormatParamValue</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountTCPFXParms">CountTCPFXParms</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItemTake_Item">GetMediaItemTake_Item</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Master_NormalizeTempo">Master_NormalizeTempo</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_FormatParamValueNormalized">TakeFX_FormatParamValueNormalized</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountTempoTimeSigMarkers">CountTempoTimeSigMarkers</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItemTake_Peaks">GetMediaItemTake_Peaks</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MB">MB</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetChainVisible">TakeFX_GetChainVisible</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountTrackEnvelopes">CountTrackEnvelopes</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItemTake_Source">GetMediaItemTake_Source</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MediaItemDescendsFromTrack">MediaItemDescendsFromTrack</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetCount">TakeFX_GetCount</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountTrackMediaItems">CountTrackMediaItems</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItemTake_Track">GetMediaItemTake_Track</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_CountEvts">MIDI_CountEvts</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetEnabled">TakeFX_GetEnabled</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountTracks">CountTracks</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItemTakeByGUID">GetMediaItemTakeByGUID</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_DeleteCC">MIDI_DeleteCC</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetEnvelope">TakeFX_GetEnvelope</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateNewMIDIItemInProj">CreateNewMIDIItemInProj</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItemTakeInfo_Value">GetMediaItemTakeInfo_Value</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_DeleteEvt">MIDI_DeleteEvt</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetFloatingWindow">TakeFX_GetFloatingWindow</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTakeAudioAccessor">CreateTakeAudioAccessor</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaItemTrack">GetMediaItemTrack</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_DeleteNote">MIDI_DeleteNote</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetFormattedParamValue">TakeFX_GetFormattedParamValue</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTrackAudioAccessor">CreateTrackAudioAccessor</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaSourceFileName">GetMediaSourceFileName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_DeleteTextSysexEvt">MIDI_DeleteTextSysexEvt</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetFXGUID">TakeFX_GetFXGUID</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTrackSend">CreateTrackSend</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaSourceLength">GetMediaSourceLength</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_EnumSelCC">MIDI_EnumSelCC</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetFXName">TakeFX_GetFXName</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_FlushUndo">CSurf_FlushUndo</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaSourceNumChannels">GetMediaSourceNumChannels</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_EnumSelEvts">MIDI_EnumSelEvts</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetIOSize">TakeFX_GetIOSize</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_GetTouchState">CSurf_GetTouchState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaSourceParent">GetMediaSourceParent</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_EnumSelNotes">MIDI_EnumSelNotes</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetNamedConfigParm">TakeFX_GetNamedConfigParm</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_GoEnd">CSurf_GoEnd</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaSourceSampleRate">GetMediaSourceSampleRate</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_EnumSelTextSysexEvts">MIDI_EnumSelTextSysexEvts</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetNumParams">TakeFX_GetNumParams</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_GoStart">CSurf_GoStart</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaSourceType">GetMediaSourceType</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetAllEvts">MIDI_GetAllEvts</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetOffline">TakeFX_GetOffline</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_NumTracks">CSurf_NumTracks</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaTrackInfo_Value">GetMediaTrackInfo_Value</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetCC">MIDI_GetCC</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetOpen">TakeFX_GetOpen</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnArrow">CSurf_OnArrow</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMIDIInputName">GetMIDIInputName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetEvt">MIDI_GetEvt</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetParam">TakeFX_GetParam</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnFwd">CSurf_OnFwd</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMIDIOutputName">GetMIDIOutputName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetGrid">MIDI_GetGrid</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetParameterStepSizes">TakeFX_GetParameterStepSizes</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnFXChange">CSurf_OnFXChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMixerScroll">GetMixerScroll</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetHash">MIDI_GetHash</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetParamEx">TakeFX_GetParamEx</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnInputMonitorChange">CSurf_OnInputMonitorChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMouseModifier">GetMouseModifier</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetNote">MIDI_GetNote</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetParamName">TakeFX_GetParamName</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnInputMonitorChangeEx">CSurf_OnInputMonitorChangeEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMousePosition">GetMousePosition</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetPPQPos_EndOfMeasure">MIDI_GetPPQPos_EndOfMeasure</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetParamNormalized">TakeFX_GetParamNormalized</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnMuteChange">CSurf_OnMuteChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetNumAudioInputs">GetNumAudioInputs</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetPPQPos_StartOfMeasure">MIDI_GetPPQPos_StartOfMeasure</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetPinMappings">TakeFX_GetPinMappings</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnMuteChangeEx">CSurf_OnMuteChangeEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetNumAudioOutputs">GetNumAudioOutputs</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetPPQPosFromProjQN">MIDI_GetPPQPosFromProjQN</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetPreset">TakeFX_GetPreset</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnPanChange">CSurf_OnPanChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetNumMIDIInputs">GetNumMIDIInputs</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetPPQPosFromProjTime">MIDI_GetPPQPosFromProjTime</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetPresetIndex">TakeFX_GetPresetIndex</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnPanChangeEx">CSurf_OnPanChangeEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetNumMIDIOutputs">GetNumMIDIOutputs</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetProjQNFromPPQPos">MIDI_GetProjQNFromPPQPos</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetUserPresetFilename">TakeFX_GetUserPresetFilename</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnPause">CSurf_OnPause</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetNumTracks">GetNumTracks</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetProjTimeFromPPQPos">MIDI_GetProjTimeFromPPQPos</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_NavigatePresets">TakeFX_NavigatePresets</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnPlay">CSurf_OnPlay</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetOS">GetOS</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetScale">MIDI_GetScale</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetEnabled">TakeFX_SetEnabled</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnPlayRateChange">CSurf_OnPlayRateChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetOutputChannelName">GetOutputChannelName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetTextSysexEvt">MIDI_GetTextSysexEvt</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetNamedConfigParm">TakeFX_SetNamedConfigParm</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnRecArmChange">CSurf_OnRecArmChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetOutputLatency">GetOutputLatency</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetTrackHash">MIDI_GetTrackHash</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetOffline">TakeFX_SetOffline</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnRecArmChangeEx">CSurf_OnRecArmChangeEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetParentTrack">GetParentTrack</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_InsertCC">MIDI_InsertCC</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetOpen">TakeFX_SetOpen</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnRecord">CSurf_OnRecord</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetPeakFileName">GetPeakFileName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_InsertEvt">MIDI_InsertEvt</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetParam">TakeFX_SetParam</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnRecvPanChange">CSurf_OnRecvPanChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetPeakFileNameEx">GetPeakFileNameEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_InsertNote">MIDI_InsertNote</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetParamNormalized">TakeFX_SetParamNormalized</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnRecvVolumeChange">CSurf_OnRecvVolumeChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetPeakFileNameEx2">GetPeakFileNameEx2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_InsertTextSysexEvt">MIDI_InsertTextSysexEvt</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetPinMappings">TakeFX_SetPinMappings</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnRew">CSurf_OnRew</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetPlayPosition">GetPlayPosition</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#midi_reinit">midi_reinit</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetPreset">TakeFX_SetPreset</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnRewFwd">CSurf_OnRewFwd</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetPlayPosition2">GetPlayPosition2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_SelectAll">MIDI_SelectAll</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetPresetByIndex">TakeFX_SetPresetByIndex</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnScroll">CSurf_OnScroll</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetPlayPosition2Ex">GetPlayPosition2Ex</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_SetAllEvts">MIDI_SetAllEvts</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_Show">TakeFX_Show</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnSelectedChange">CSurf_OnSelectedChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetPlayPositionEx">GetPlayPositionEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_SetCC">MIDI_SetCC</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeIsMIDI">TakeIsMIDI</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnSendPanChange">CSurf_OnSendPanChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetPlayState">GetPlayState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_SetEvt">MIDI_SetEvt</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#time_precise">time_precise</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnSendVolumeChange">CSurf_OnSendVolumeChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetPlayStateEx">GetPlayStateEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_SetItemExtents">MIDI_SetItemExtents</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap2_beatsToTime">TimeMap2_beatsToTime</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnSoloChange">CSurf_OnSoloChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjectLength">GetProjectLength</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_SetNote">MIDI_SetNote</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap2_GetDividedBpmAtTime">TimeMap2_GetDividedBpmAtTime</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnSoloChangeEx">CSurf_OnSoloChangeEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjectName">GetProjectName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_SetTextSysexEvt">MIDI_SetTextSysexEvt</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap2_GetNextChangeTime">TimeMap2_GetNextChangeTime</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnStop">CSurf_OnStop</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjectPath">GetProjectPath</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_Sort">MIDI_Sort</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap2_QNToTime">TimeMap2_QNToTime</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnTempoChange">CSurf_OnTempoChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjectPathEx">GetProjectPathEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetActive">MIDIEditor_GetActive</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap2_timeToBeats">TimeMap2_timeToBeats</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnTrackSelection">CSurf_OnTrackSelection</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjectStateChangeCount">GetProjectStateChangeCount</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetMode">MIDIEditor_GetMode</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap2_timeToQN">TimeMap2_timeToQN</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnVolumeChange">CSurf_OnVolumeChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjectTimeOffset">GetProjectTimeOffset</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetSetting_int">MIDIEditor_GetSetting_int</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap_curFrameRate">TimeMap_curFrameRate</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnVolumeChangeEx">CSurf_OnVolumeChangeEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjectTimeSignature">GetProjectTimeSignature</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetSetting_str">MIDIEditor_GetSetting_str</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap_GetDividedBpmAtTime">TimeMap_GetDividedBpmAtTime</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnWidthChange">CSurf_OnWidthChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjectTimeSignature2">GetProjectTimeSignature2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetTake">MIDIEditor_GetTake</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap_GetMeasureInfo">TimeMap_GetMeasureInfo</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnWidthChangeEx">CSurf_OnWidthChangeEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjExtState">GetProjExtState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_LastFocused_OnCommand">MIDIEditor_LastFocused_OnCommand</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap_GetMetronomePattern">TimeMap_GetMetronomePattern</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_OnZoom">CSurf_OnZoom</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetResourcePath">GetResourcePath</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_OnCommand">MIDIEditor_OnCommand</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap_GetTimeSigAtTime">TimeMap_GetTimeSigAtTime</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_ResetAllCachedVolPanStates">CSurf_ResetAllCachedVolPanStates</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSelectedEnvelope">GetSelectedEnvelope</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#mkpanstr">mkpanstr</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap_QNToMeasures">TimeMap_QNToMeasures</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_ScrubAmt">CSurf_ScrubAmt</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSelectedMediaItem">GetSelectedMediaItem</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#mkvolpanstr">mkvolpanstr</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap_QNToTime">TimeMap_QNToTime</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_SetAutoMode">CSurf_SetAutoMode</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSelectedTrack">GetSelectedTrack</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#mkvolstr">mkvolstr</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap_QNToTime_abs">TimeMap_QNToTime_abs</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_SetPlayState">CSurf_SetPlayState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSelectedTrack2">GetSelectedTrack2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MoveEditCursor">MoveEditCursor</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap_timeToQN">TimeMap_timeToQN</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_SetRepeatState">CSurf_SetRepeatState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSelectedTrackEnvelope">GetSelectedTrackEnvelope</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MoveMediaItemToTrack">MoveMediaItemToTrack</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap_timeToQN_abs">TimeMap_timeToQN_abs</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_SetSurfaceMute">CSurf_SetSurfaceMute</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSet_ArrangeView2">GetSet_ArrangeView2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MuteAllTracks">MuteAllTracks</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ToggleTrackSendUIMute">ToggleTrackSendUIMute</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_SetSurfacePan">CSurf_SetSurfacePan</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSet_LoopTimeRange">GetSet_LoopTimeRange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#my_getViewport">my_getViewport</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Track_GetPeakHoldDB">Track_GetPeakHoldDB</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_SetSurfaceRecArm">CSurf_SetSurfaceRecArm</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSet_LoopTimeRange2">GetSet_LoopTimeRange2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#NamedCommandLookup">NamedCommandLookup</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Track_GetPeakInfo">Track_GetPeakInfo</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_SetSurfaceSelected">CSurf_SetSurfaceSelected</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetAutomationItemInfo">GetSetAutomationItemInfo</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#OnPauseButton">OnPauseButton</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackCtl_SetToolTip">TrackCtl_SetToolTip</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_SetSurfaceSolo">CSurf_SetSurfaceSolo</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetEnvelopeState">GetSetEnvelopeState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#OnPauseButtonEx">OnPauseButtonEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_AddByName">TrackFX_AddByName</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_SetSurfaceVolume">CSurf_SetSurfaceVolume</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetEnvelopeState2">GetSetEnvelopeState2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#OnPlayButton">OnPlayButton</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_CopyToTake">TrackFX_CopyToTake</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_SetTrackListChange">CSurf_SetTrackListChange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetItemState">GetSetItemState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#OnPlayButtonEx">OnPlayButtonEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_CopyToTrack">TrackFX_CopyToTrack</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_TrackFromID">CSurf_TrackFromID</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetItemState2">GetSetItemState2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#OnStopButton">OnStopButton</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_Delete">TrackFX_Delete</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CSurf_TrackToID">CSurf_TrackToID</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetMediaItemInfo_String">GetSetMediaItemInfo_String</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#OnStopButtonEx">OnStopButtonEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_EndParamEdit">TrackFX_EndParamEdit</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DB2SLIDER">DB2SLIDER</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetMediaItemTakeInfo_String">GetSetMediaItemTakeInfo_String</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#OpenColorThemeFile">OpenColorThemeFile</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_FormatParamValue">TrackFX_FormatParamValue</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteEnvelopePointRange">DeleteEnvelopePointRange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetMediaTrackInfo_String">GetSetMediaTrackInfo_String</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#OpenMediaExplorer">OpenMediaExplorer</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_FormatParamValueNormalized">TrackFX_FormatParamValueNormalized</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteEnvelopePointRangeEx">DeleteEnvelopePointRangeEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetProjectAuthor">GetSetProjectAuthor</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#OscLocalMessageToHost">OscLocalMessageToHost</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetByName">TrackFX_GetByName</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteExtState">DeleteExtState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetProjectGrid">GetSetProjectGrid</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#parse_timestr">parse_timestr</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetChainVisible">TrackFX_GetChainVisible</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteProjectMarker">DeleteProjectMarker</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetProjectNotes">GetSetProjectNotes</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#parse_timestr_len">parse_timestr_len</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetCount">TrackFX_GetCount</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteProjectMarkerByIndex">DeleteProjectMarkerByIndex</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetRepeat">GetSetRepeat</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#parse_timestr_pos">parse_timestr_pos</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEnabled">TrackFX_GetEnabled</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteTakeStretchMarkers">DeleteTakeStretchMarkers</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetRepeatEx">GetSetRepeatEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#parsepanstr">parsepanstr</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQ">TrackFX_GetEQ</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteTempoTimeSigMarker">DeleteTempoTimeSigMarker</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetTrackGroupMembership">GetSetTrackGroupMembership</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PCM_Sink_Enum">PCM_Sink_Enum</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQBandEnabled">TrackFX_GetEQBandEnabled</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteTrack">DeleteTrack</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetTrackGroupMembershipHigh">GetSetTrackGroupMembershipHigh</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PCM_Sink_GetExtension">PCM_Sink_GetExtension</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQParam">TrackFX_GetEQParam</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteTrackMediaItem">DeleteTrackMediaItem</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetTrackState">GetSetTrackState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PCM_Sink_ShowConfig">PCM_Sink_ShowConfig</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetFloatingWindow">TrackFX_GetFloatingWindow</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DestroyAudioAccessor">DestroyAudioAccessor</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetTrackState2">GetSetTrackState2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PCM_Source_CreateFromFile">PCM_Source_CreateFromFile</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetFormattedParamValue">TrackFX_GetFormattedParamValue</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Dock_UpdateDockID">Dock_UpdateDockID</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSubProjectFromSource">GetSubProjectFromSource</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PCM_Source_CreateFromFileEx">PCM_Source_CreateFromFileEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetFXGUID">TrackFX_GetFXGUID</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DockIsChildOfDock">DockIsChildOfDock</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTake">GetTake</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PCM_Source_CreateFromType">PCM_Source_CreateFromType</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetFXName">TrackFX_GetFXName</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DockWindowActivate">DockWindowActivate</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTakeEnvelope">GetTakeEnvelope</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PCM_Source_Destroy">PCM_Source_Destroy</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetInstrument">TrackFX_GetInstrument</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DockWindowAdd">DockWindowAdd</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTakeEnvelopeByName">GetTakeEnvelopeByName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PCM_Source_GetPeaks">PCM_Source_GetPeaks</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetIOSize">TrackFX_GetIOSize</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DockWindowAddEx">DockWindowAddEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTakeName">GetTakeName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PCM_Source_GetSectionInfo">PCM_Source_GetSectionInfo</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetNamedConfigParm">TrackFX_GetNamedConfigParm</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DockWindowRefresh">DockWindowRefresh</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTakeNumStretchMarkers">GetTakeNumStretchMarkers</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PluginWantsAlwaysRunFx">PluginWantsAlwaysRunFx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetNumParams">TrackFX_GetNumParams</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DockWindowRefreshForHWND">DockWindowRefreshForHWND</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTakeStretchMarker">GetTakeStretchMarker</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PreventUIRefresh">PreventUIRefresh</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetOffline">TrackFX_GetOffline</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DockWindowRemove">DockWindowRemove</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTakeStretchMarkerSlope">GetTakeStretchMarkerSlope</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ReaScriptError">Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>Error</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetOpen">TrackFX_GetOpen</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EditTempoTimeSigMarker">EditTempoTimeSigMarker</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTCPFXParm">GetTCPFXParm</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#RecursiveCreateDirectory">RecursiveCreateDirectory</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetParam">TrackFX_GetParam</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnsureNotCompletelyOffscreen">EnsureNotCompletelyOffscreen</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTempoMatchPlayRate">GetTempoMatchPlayRate</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#RefreshToolbar">RefreshToolbar</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetParameterStepSizes">TrackFX_GetParameterStepSizes</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumerateFiles">EnumerateFiles</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTempoTimeSigMarker">GetTempoTimeSigMarker</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#RefreshToolbar2">RefreshToolbar2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetParamEx">TrackFX_GetParamEx</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumerateSubdirectories">EnumerateSubdirectories</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetToggleCommandState">GetToggleCommandState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#relative_fn">relative_fn</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetParamName">TrackFX_GetParamName</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumPitchShiftModes">EnumPitchShiftModes</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetToggleCommandStateEx">GetToggleCommandStateEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#RemoveTrackSend">RemoveTrackSend</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetParamNormalized">TrackFX_GetParamNormalized</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumPitchShiftSubModes">EnumPitchShiftSubModes</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTooltipWindow">GetTooltipWindow</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#RenderFileSection">RenderFileSection</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetPinMappings">TrackFX_GetPinMappings</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumProjectMarkers">EnumProjectMarkers</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrack">GetTrack</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ReorderSelectedTracks">ReorderSelectedTracks</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetPreset">TrackFX_GetPreset</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumProjectMarkers2">EnumProjectMarkers2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackAutomationMode">GetTrackAutomationMode</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Resample_EnumModes">Resample_EnumModes</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetPresetIndex">TrackFX_GetPresetIndex</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumProjectMarkers3">EnumProjectMarkers3</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackColor">GetTrackColor</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#resolve_fn">resolve_fn</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetRecChainVisible">TrackFX_GetRecChainVisible</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumProjects">EnumProjects</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackDepth">GetTrackDepth</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#resolve_fn2">resolve_fn2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetRecCount">TrackFX_GetRecCount</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumProjExtState">EnumProjExtState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackEnvelope">GetTrackEnvelope</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ReverseNamedCommandLookup">ReverseNamedCommandLookup</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetUserPresetFilename">TrackFX_GetUserPresetFilename</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumRegionRenderMatrix">EnumRegionRenderMatrix</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackEnvelopeByChunkName">GetTrackEnvelopeByChunkName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ScaleFromEnvelopeMode">ScaleFromEnvelopeMode</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_NavigatePresets">TrackFX_NavigatePresets</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumTrackMIDIProgramNames">EnumTrackMIDIProgramNames</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackEnvelopeByName">GetTrackEnvelopeByName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ScaleToEnvelopeMode">ScaleToEnvelopeMode</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetEnabled">TrackFX_SetEnabled</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumTrackMIDIProgramNamesEx">EnumTrackMIDIProgramNamesEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackGUID">GetTrackGUID</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SelectAllMediaItems">SelectAllMediaItems</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetEQBandEnabled">TrackFX_SetEQBandEnabled</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Envelope_Evaluate">Envelope_Evaluate</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackMediaItem">GetTrackMediaItem</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SelectProjectInstance">SelectProjectInstance</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetEQParam">TrackFX_SetEQParam</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Envelope_FormatValue">Envelope_FormatValue</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackMIDILyrics">GetTrackMIDILyrics</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetActiveTake">SetActiveTake</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetNamedConfigParm">TrackFX_SetNamedConfigParm</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Envelope_GetParentTake">Envelope_GetParentTake</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackMIDINoteName">GetTrackMIDINoteName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetAutomationMode">SetAutomationMode</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetOffline">TrackFX_SetOffline</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Envelope_GetParentTrack">Envelope_GetParentTrack</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackMIDINoteNameEx">GetTrackMIDINoteNameEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetCurrentBPM">SetCurrentBPM</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetOpen">TrackFX_SetOpen</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Envelope_SortPoints">Envelope_SortPoints</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackMIDINoteRange">GetTrackMIDINoteRange</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetCursorContext">SetCursorContext</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetParam">TrackFX_SetParam</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Envelope_SortPointsEx">Envelope_SortPointsEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackName">GetTrackName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEditCurPos">SetEditCurPos</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetParamNormalized">TrackFX_SetParamNormalized</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ExecProcess">ExecProcess</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackNumMediaItems">GetTrackNumMediaItems</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEditCurPos2">SetEditCurPos2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetPinMappings">TrackFX_SetPinMappings</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#file_exists">file_exists</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackNumSends">GetTrackNumSends</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopePoint">SetEnvelopePoint</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetPreset">TrackFX_SetPreset</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#FindTempoTimeSigMarker">FindTempoTimeSigMarker</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackReceiveName">GetTrackReceiveName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopePointEx">SetEnvelopePointEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetPresetByIndex">TrackFX_SetPresetByIndex</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#format_timestr">format_timestr</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackReceiveUIMute">GetTrackReceiveUIMute</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopeStateChunk">SetEnvelopeStateChunk</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_Show">TrackFX_Show</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#format_timestr_len">format_timestr_len</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackReceiveUIVolPan">GetTrackReceiveUIVolPan</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetExtState">SetExtState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackList_AdjustWindows">TrackList_AdjustWindows</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#format_timestr_pos">format_timestr_pos</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackSendInfo_Value">GetTrackSendInfo_Value</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetGlobalAutomationOverride">SetGlobalAutomationOverride</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackList_UpdateAllExternalSurfaces">TrackList_UpdateAllExternalSurfaces</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#genGuid">genGuid</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackSendName">GetTrackSendName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetItemStateChunk">SetItemStateChunk</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_BeginBlock">Undo_BeginBlock</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#get_ini_file">get_ini_file</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackSendUIMute">GetTrackSendUIMute</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMasterTrackVisibility">SetMasterTrackVisibility</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_BeginBlock2">Undo_BeginBlock2</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetActiveTake">GetActiveTake</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackSendUIVolPan">GetTrackSendUIVolPan</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMediaItemInfo_Value">SetMediaItemInfo_Value</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_CanRedo2">Undo_CanRedo2</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAllProjectPlayStates">GetAllProjectPlayStates</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackState">GetTrackState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMediaItemLength">SetMediaItemLength</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_CanUndo2">Undo_CanUndo2</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAppVersion">GetAppVersion</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackStateChunk">GetTrackStateChunk</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMediaItemPosition">SetMediaItemPosition</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_DoRedo2">Undo_DoRedo2</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetArmedCommand">GetArmedCommand</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackUIMute">GetTrackUIMute</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMediaItemSelected">SetMediaItemSelected</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_DoUndo2">Undo_DoUndo2</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorEndTime">GetAudioAccessorEndTime</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackUIPan">GetTrackUIPan</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMediaItemTake_Source">SetMediaItemTake_Source</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_EndBlock">Undo_EndBlock</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorHash">GetAudioAccessorHash</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackUIVolPan">GetTrackUIVolPan</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMediaItemTakeInfo_Value">SetMediaItemTakeInfo_Value</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_EndBlock2">Undo_EndBlock2</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorSamples">GetAudioAccessorSamples</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetUnderrunTime">GetUnderrunTime</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMediaTrackInfo_Value">SetMediaTrackInfo_Value</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_OnStateChange">Undo_OnStateChange</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorStartTime">GetAudioAccessorStartTime</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetUserFileNameForRead">GetUserFileNameForRead</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMIDIEditorGrid">SetMIDIEditorGrid</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_OnStateChange2">Undo_OnStateChange2</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioDeviceInfo">GetAudioDeviceInfo</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetUserInputs">GetUserInputs</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMixerScroll">SetMixerScroll</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_OnStateChange_Item">Undo_OnStateChange_Item</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetConfigWantsDock">GetConfigWantsDock</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GoToMarker">GoToMarker</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMouseModifier">SetMouseModifier</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_OnStateChangeEx">Undo_OnStateChangeEx</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetCurrentProjectInLoadSave">GetCurrentProjectInLoadSave</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GoToRegion">GoToRegion</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetOnlyTrackSelected">SetOnlyTrackSelected</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Undo_OnStateChangeEx2">Undo_OnStateChangeEx2</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetCursorContext">GetCursorContext</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GR_SelectColor">GR_SelectColor</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjectGrid">SetProjectGrid</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#UpdateArrange">UpdateArrange</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetCursorContext2">GetCursorContext2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GSC_mainwnd">GSC_mainwnd</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjectMarker">SetProjectMarker</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#UpdateItemInProject">UpdateItemInProject</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetCursorPosition">GetCursorPosition</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#guidToString">guidToString</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjectMarker2">SetProjectMarker2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#UpdateTimeline">UpdateTimeline</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetCursorPositionEx">GetCursorPositionEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#HasExtState">HasExtState</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjectMarker3">SetProjectMarker3</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ValidatePtr">ValidatePtr</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetDisplayedMediaItemColor">GetDisplayedMediaItemColor</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#HasTrackMIDIPrograms">HasTrackMIDIPrograms</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjectMarker4">SetProjectMarker4</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ValidatePtr2">ValidatePtr2</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetDisplayedMediaItemColor2">GetDisplayedMediaItemColor2</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#HasTrackMIDIProgramsEx">HasTrackMIDIProgramsEx</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjectMarkerByIndex">SetProjectMarkerByIndex</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ViewPrefs">ViewPrefs</a> &nbsp; &nbsp; </td></tr>
<tr><td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeName">GetEnvelopeName</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Help_Set">Help_Set</a> &nbsp; &nbsp; </td>
<td><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjectMarkerByIndex2">SetProjectMarkerByIndex2</a> &nbsp; &nbsp; </td>
<td></td></tr>
</tbody></table></code><style class="AC-highLightRule">.acWHSet{display:inline!important;box-shadow: -3px 0px 3px 0.15px rgba(0, 0, 0, 0.15);color:rgb(0,0,0);font-weight:inherit;}.acWHSet[data='reaper']{background-color:#FFFF80;}.acWHSet[data='script']{background-color:#90EE90;}</style>
<br><br>
<a name="AddMediaItemToTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem* AddMediaItemToTrack(MediaTrack* tr)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem</i>  AddMediaItemToTrack(<i>MediaTrack</i> tr)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.AddMediaItemToTrack(<i>MediaTrack</i> tr)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem</i>  RPR_AddMediaItemToTrack(<i>MediaTrack</i> tr)</code><br><br></div>
creates a new media item.<br><br>
<a name="AddProjectMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int AddProjectMarker(ReaProject* proj, bool isrgn, double pos, double rgnend, const char* name, int wantidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> AddProjectMarker(<i>ReaProject</i> proj, <i>bool </i>isrgn, pos, rgnend, "name", <i>int </i>wantidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.AddProjectMarker(<i>ReaProject</i> proj, <i>boolean</i> isrgn, <i>number</i> pos, <i>number</i> rgnend, <i>string</i> name, <i>integer</i> wantidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_AddProjectMarker(<i>ReaProject</i> proj, <i>Boolean</i> isrgn, <i>Float</i> pos, <i>Float</i> rgnend, <i>String</i> name, <i>Int</i> wantidx)</code><br><br></div>
Returns the index of the created marker/region, or -1 on failure. Supply wantidx&gt;=0 if you want a particular index number, but you'll get a different index number a region and wantidx is already in use.<br><br>
<a name="AddProjectMarker2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int AddProjectMarker2(ReaProject* proj, bool isrgn, double pos, double rgnend, const char* name, int wantidx, int color)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> AddProjectMarker2(<i>ReaProject</i> proj, <i>bool </i>isrgn, pos, rgnend, "name", <i>int </i>wantidx, <i>int </i>color)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.AddProjectMarker2(<i>ReaProject</i> proj, <i>boolean</i> isrgn, <i>number</i> pos, <i>number</i> rgnend, <i>string</i> name, <i>integer</i> wantidx, <i>integer</i> color)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_AddProjectMarker2(<i>ReaProject</i> proj, <i>Boolean</i> isrgn, <i>Float</i> pos, <i>Float</i> rgnend, <i>String</i> name, <i>Int</i> wantidx, <i>Int</i> color)</code><br><br></div>
Returns the index of the created marker/region, or -1 on failure. Supply wantidx&gt;=0 if you want a particular index number, but you'll get a different index number a region and wantidx is already in use. color should be 0 (default color), or ColorToNative(r,g,b)|0x1000000<br><br>
<a name="AddRemoveReaScript"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int AddRemoveRea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>(bool add, int sectionID, const char* <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>fn, bool commit)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> AddRemoveRea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>(<i>bool </i>add, <i>int </i>sectionID, "<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>fn", <i>bool </i>commit)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.AddRemoveRea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>(<i>boolean</i> add, <i>integer</i> sectionID, <i>string</i> <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>fn, <i>boolean</i> commit)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_AddRemoveRea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>(<i>Boolean</i> add, <i>Int</i> sectionID, <i>String</i> <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>fn, <i>Boolean</i> commit)</code><br><br></div>
Add a Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight> (return the new command ID, or 0 if failed) or remove a Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight> (return &gt;0 on success). Use commit==true when adding/removing a single <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>. When bulk adding/removing n <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>s, you can optimize the n-1 first calls with commit==false and commit==true for the last call.<br><br>
<a name="AddTakeToMediaItem"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem_Take* AddTakeToMediaItem(MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem_Take</i>  AddTakeToMediaItem(<i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem_Take</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.AddTakeToMediaItem(<i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem_Take</i>  RPR_AddTakeToMediaItem(<i>MediaItem</i> item)</code><br><br></div>
creates a new take in an item<br><br>
<a name="AddTempoTimeSigMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool AddTempoTimeSigMarker(ReaProject* proj, double timepos, double bpm, int timesig_num, int timesig_denom, bool lineartempochange)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> AddTempoTimeSigMarker(<i>ReaProject</i> proj, timepos, bpm, <i>int </i>timesig_num, <i>int </i>timesig_denom, <i>bool </i>lineartempochange)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.AddTempoTimeSigMarker(<i>ReaProject</i> proj, <i>number</i> timepos, <i>number</i> bpm, <i>integer</i> timesig_num, <i>integer</i> timesig_denom, <i>boolean</i> lineartempochange)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_AddTempoTimeSigMarker(<i>ReaProject</i> proj, <i>Float</i> timepos, <i>Float</i> bpm, <i>Int</i> timesig_num, <i>Int</i> timesig_denom, <i>Boolean</i> lineartempochange)</code><br><br></div>
Deprecated. Use SetTempoTimeSigMarker with ptidx=-1.<br><br>
<a name="adjustZoom"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void adjustZoom(double amt, int forceset, bool doupd, int centermode)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>adjustZoom(amt, <i>int </i>forceset, <i>bool </i>doupd, <i>int </i>centermode)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.adjustZoom(<i>number</i> amt, <i>integer</i> forceset, <i>boolean</i> doupd, <i>integer</i> centermode)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_adjustZoom(<i>Float</i> amt, <i>Int</i> forceset, <i>Boolean</i> doupd, <i>Int</i> centermode)</code><br><br></div>
forceset=0,doupd=true,centermode=-1 for default<br><br>
<a name="AnyTrackSolo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool AnyTrackSolo(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> AnyTrackSolo(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.AnyTrackSolo(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_AnyTrackSolo(<i>ReaProject</i> proj)</code><br><br></div>
<a name="APIExists"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool APIExists(const char* function_name)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> APIExists("function_name")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.APIExists(<i>string</i> function_name)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_APIExists(<i>String</i> function_name)</code><br><br></div>
Returns true if function_name exists in the <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> API<br><br>
<a name="APITest"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void APITest()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>APITest()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.APITest()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_APITest()</code><br><br></div>
Displays a message window if the API was successfully called.<br><br>
<a name="ApplyNudge"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool ApplyNudge(ReaProject* project, int nudgeflag, int nudgewhat, int nudgeunits, double value, bool reverse, int copies)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> ApplyNudge(<i>ReaProject</i> project, <i>int </i>nudgeflag, <i>int </i>nudgewhat, <i>int </i>nudgeunits, value, <i>bool </i>reverse, <i>int </i>copies)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ApplyNudge(<i>ReaProject</i> project, <i>integer</i> nudgeflag, <i>integer</i> nudgewhat, <i>integer</i> nudgeunits, <i>number</i> value, <i>boolean</i> reverse, <i>integer</i> copies)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_ApplyNudge(<i>ReaProject</i> project, <i>Int</i> nudgeflag, <i>Int</i> nudgewhat, <i>Int</i> nudgeunits, <i>Float</i> value, <i>Boolean</i> reverse, <i>Int</i> copies)</code><br><br></div>
nudgeflag: &amp;1=set to value (otherwise nudge by value), &amp;2=snap<br>
nudgewhat: 0=position, 1=left trim, 2=left edge, 3=right edge, 4=contents, 5=duplicate, 6=edit cursor<br>
nudgeunit: 0=ms, 1=seconds, 2=grid, 3=256th notes, ..., 15=whole notes, 16=measures.beats (1.15 = 1 measure + 1.5 beats), 17=samples, 18=frames, 19=pixels, 20=item lengths, 21=item selections<br>
value: amount to nudge by, or value to set to<br>
reverse: in nudge mode, nudges left (otherwise ignored)<br>
copies: in nudge duplicate mode, number of copies (otherwise ignored)<br><br>
<a name="ArmCommand"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void ArmCommand(int cmd, const char* sectionname)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>ArmCommand(<i>int </i>cmd, "sectionname")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ArmCommand(<i>integer</i> cmd, <i>string</i> sectionname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_ArmCommand(<i>Int</i> cmd, <i>String</i> sectionname)</code><br><br></div>
arms a command (or disarms if 0 passed) in section sectionname (empty string for main)<br><br>
<a name="Audio_Init"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Audio_Init()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Audio_Init()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Audio_Init()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Audio_Init()</code><br><br></div>
open all audio and MIDI devices, if not open<br><br>
<a name="Audio_IsPreBuffer"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int Audio_IsPreBuffer()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> Audio_IsPreBuffer()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Audio_IsPreBuffer()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_Audio_IsPreBuffer()</code><br><br></div>
is in pre-buffer? threadsafe<br><br>
<a name="Audio_IsRunning"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int Audio_IsRunning()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> Audio_IsRunning()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Audio_IsRunning()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_Audio_IsRunning()</code><br><br></div>
is audio running at all? threadsafe<br><br>
<a name="Audio_Quit"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Audio_Quit()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Audio_Quit()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Audio_Quit()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Audio_Quit()</code><br><br></div>
close all audio and MIDI devices, if open<br><br>
<a name="AudioAccessorValidateState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool AudioAccessorValidateState(AudioAccessor* accessor)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> AudioAccessorValidateState(<i>AudioAccessor</i> accessor)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.AudioAccessorValidateState(<i>AudioAccessor</i> accessor)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_AudioAccessorValidateState(<i>AudioAccessor</i> accessor)</code><br><br></div>
Validates the current state of the audio accessor -- must ONLY call this from the main thread. Returns true if the state changed.<br><br>
<a name="BypassFxAllTracks"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void BypassFxAllTracks(int bypass)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>BypassFxAllTracks(<i>int </i>bypass)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.BypassFxAllTracks(<i>integer</i> bypass)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_BypassFxAllTracks(<i>Int</i> bypass)</code><br><br></div>
-1 = bypass all if not all bypassed,otherwise unbypass all<br><br>
<a name="ClearAllRecArmed"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void ClearAllRecArmed()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>ClearAllRecArmed()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ClearAllRecArmed()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_ClearAllRecArmed()</code><br><br></div>
<a name="ClearConsole"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void ClearConsole()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>ClearConsole()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ClearConsole()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_ClearConsole()</code><br><br></div>
Clear the Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight> console. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ShowConsoleMsg">ShowConsoleMsg</a><br><br>
<a name="ClearPeakCache"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void ClearPeakCache()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>ClearPeakCache()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ClearPeakCache()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_ClearPeakCache()</code><br><br></div>
resets the global peak caches<br><br>
<a name="ColorFromNative"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void ColorFromNative(int col, int* rOut, int* gOut, int* bOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>ColorFromNative(<i>int </i>col, <i>int &amp;</i>r, <i>int &amp;</i>g, <i>int &amp;</i>b)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number </i>r, <i>number </i>g, <i>number </i>b = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ColorFromNative(<i>integer</i> col)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> col, <i>Int</i> rOut, <i>Int</i> gOut, <i>Int</i> bOut) = RPR_ColorFromNative(col, rOut, gOut, bOut)</code><br><br></div>
Extract RGB values from an OS dependent color. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ColorToNative">ColorToNative</a>.<br><br>
<a name="ColorToNative"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int ColorToNative(int r, int g, int b)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> ColorToNative(<i>int </i>r, <i>int </i>g, <i>int </i>b)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ColorToNative(<i>integer</i> r, <i>integer</i> g, <i>integer</i> b)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_ColorToNative(<i>Int</i> r, <i>Int</i> g, <i>Int</i> b)</code><br><br></div>
Make an OS dependent color from RGB values (e.g. RGB() macro on Windows). r,g and b are in [0..255]. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ColorFromNative">ColorFromNative</a>.<br><br>
<a name="CountAutomationItems"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountAutomationItems(TrackEnvelope* env)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountAutomationItems(<i>TrackEnvelope</i> env)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountAutomationItems(<i>TrackEnvelope</i> env)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountAutomationItems(<i>TrackEnvelope</i> env)</code><br><br></div>
Returns the number of automation items on this envelope. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetAutomationItemInfo">GetSetAutomationItemInfo</a><br><br>
<a name="CountEnvelopePoints"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountEnvelopePoints(TrackEnvelope* envelope)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountEnvelopePoints(<i>TrackEnvelope</i> envelope)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountEnvelopePoints(<i>TrackEnvelope</i> envelope)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountEnvelopePoints(<i>TrackEnvelope</i> envelope)</code><br><br></div>
Returns the number of points in the envelope.<br><br>
<a name="CountEnvelopePointsEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountEnvelopePointsEx(TrackEnvelope* envelope, int autoitem_idx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountEnvelopePointsEx(<i>TrackEnvelope</i> envelope, <i>int </i>autoitem_idx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountEnvelopePointsEx(<i>TrackEnvelope</i> envelope, <i>integer</i> autoitem_idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountEnvelopePointsEx(<i>TrackEnvelope</i> envelope, <i>Int</i> autoitem_idx)</code><br><br></div>
Returns the number of points in the envelope. autoitem_idx==-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.<br><br>
<a name="CountMediaItems"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountMediaItems(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountMediaItems(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountMediaItems(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountMediaItems(<i>ReaProject</i> proj)</code><br><br></div>
count the number of items in the project (proj=0 for active project)<br><br>
<a name="CountProjectMarkers"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountProjectMarkers(ReaProject* proj, int* num_markersOut, int* num_regionsOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountProjectMarkers(<i>ReaProject</i> proj, <i>int &amp;</i>num_markers, <i>int &amp;</i>num_regions)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>number </i>num_markers, <i>number </i>num_regions = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountProjectMarkers(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>ReaProject</i> proj, <i>Int</i> num_markersOut, <i>Int</i> num_regionsOut) = RPR_CountProjectMarkers(proj, num_markersOut, num_regionsOut)</code><br><br></div>
num_markersOut and num_regionsOut may be NULL.<br><br>
<a name="CountSelectedMediaItems"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountSelectedMediaItems(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountSelectedMediaItems(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountSelectedMediaItems(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountSelectedMediaItems(<i>ReaProject</i> proj)</code><br><br></div>
count the number of selected items in the project (proj=0 for active project)<br><br>
<a name="CountSelectedTracks"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountSelectedTracks(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountSelectedTracks(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountSelectedTracks(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountSelectedTracks(<i>ReaProject</i> proj)</code><br><br></div>
Count the number of selected tracks in the project (proj=0 for active project). This function ignores the master track, see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountSelectedTracks2">CountSelectedTracks2</a>.<br><br>
<a name="CountSelectedTracks2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountSelectedTracks2(ReaProject* proj, bool wantmaster)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountSelectedTracks2(<i>ReaProject</i> proj, <i>bool </i>wantmaster)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountSelectedTracks2(<i>ReaProject</i> proj, <i>boolean</i> wantmaster)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountSelectedTracks2(<i>ReaProject</i> proj, <i>Boolean</i> wantmaster)</code><br><br></div>
Count the number of selected tracks in the project (proj=0 for active project).<br><br>
<a name="CountTakeEnvelopes"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountTakeEnvelopes(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountTakeEnvelopes(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountTakeEnvelopes(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountTakeEnvelopes(<i>MediaItem_Take</i> take)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTakeEnvelope">GetTakeEnvelope</a><br><br>
<a name="CountTakes"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountTakes(MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountTakes(<i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountTakes(<i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountTakes(<i>MediaItem</i> item)</code><br><br></div>
count the number of takes in the item<br><br>
<a name="CountTCPFXParms"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountTCPFXParms(ReaProject* project, MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountTCPFXParms(<i>ReaProject</i> project, <i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountTCPFXParms(<i>ReaProject</i> project, <i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountTCPFXParms(<i>ReaProject</i> project, <i>MediaTrack</i> track)</code><br><br></div>
Count the number of FX parameter knobs displayed on the track control panel.<br><br>
<a name="CountTempoTimeSigMarkers"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountTempoTimeSigMarkers(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountTempoTimeSigMarkers(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountTempoTimeSigMarkers(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountTempoTimeSigMarkers(<i>ReaProject</i> proj)</code><br><br></div>
Count the number of tempo/time signature markers in the project. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTempoTimeSigMarker">GetTempoTimeSigMarker</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTempoTimeSigMarker">SetTempoTimeSigMarker</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#AddTempoTimeSigMarker">AddTempoTimeSigMarker</a>.<br><br>
<a name="CountTrackEnvelopes"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountTrackEnvelopes(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountTrackEnvelopes(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountTrackEnvelopes(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountTrackEnvelopes(<i>MediaTrack</i> track)</code><br><br></div>
see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackEnvelope">GetTrackEnvelope</a><br><br>
<a name="CountTrackMediaItems"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountTrackMediaItems(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountTrackMediaItems(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountTrackMediaItems(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountTrackMediaItems(<i>MediaTrack</i> track)</code><br><br></div>
count the number of items in the track<br><br>
<a name="CountTracks"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CountTracks(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CountTracks(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CountTracks(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CountTracks(<i>ReaProject</i> proj)</code><br><br></div>
count the number of tracks in the project (proj=0 for active project)<br><br>
<a name="CreateNewMIDIItemInProj"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem* CreateNewMIDIItemInProj(MediaTrack* track, double starttime, double endtime, const bool* qnInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem</i>  CreateNewMIDIItemInProj(<i>MediaTrack</i> track, starttime, endtime, <i>optional bool</i> qnIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CreateNewMIDIItemInProj(<i>MediaTrack</i> track, <i>number</i> starttime, <i>number</i> endtime, <i>optional boolean</i> qnIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem</i>  RPR_CreateNewMIDIItemInProj(<i>MediaTrack</i> track, <i>Float</i> starttime, <i>Float</i> endtime, <i>const bool</i> qnInOptional)</code><br><br></div>
Create a new MIDI media item, containing no MIDI events. Time is in seconds unless qn is set.<br><br>
<a name="CreateTakeAudioAccessor"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>AudioAccessor* CreateTakeAudioAccessor(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>AudioAccessor</i>  CreateTakeAudioAccessor(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>AudioAccessor</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CreateTakeAudioAccessor(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>AudioAccessor</i>  RPR_CreateTakeAudioAccessor(<i>MediaItem_Take</i> take)</code><br><br></div>
Create an audio accessor object for this take. Must only call from the main thread. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTrackAudioAccessor">CreateTrackAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DestroyAudioAccessor">DestroyAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorHash">GetAudioAccessorHash</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorStartTime">GetAudioAccessorStartTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorEndTime">GetAudioAccessorEndTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorSamples">GetAudioAccessorSamples</a>.<br><br>
<a name="CreateTrackAudioAccessor"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>AudioAccessor* CreateTrackAudioAccessor(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>AudioAccessor</i>  CreateTrackAudioAccessor(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>AudioAccessor</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CreateTrackAudioAccessor(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>AudioAccessor</i>  RPR_CreateTrackAudioAccessor(<i>MediaTrack</i> track)</code><br><br></div>
Create an audio accessor object for this track. Must only call from the main thread. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTakeAudioAccessor">CreateTakeAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DestroyAudioAccessor">DestroyAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorHash">GetAudioAccessorHash</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorStartTime">GetAudioAccessorStartTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorEndTime">GetAudioAccessorEndTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorSamples">GetAudioAccessorSamples</a>.<br><br>
<a name="CreateTrackSend"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CreateTrackSend(MediaTrack* tr, MediaTrack* desttrInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CreateTrackSend(<i>MediaTrack</i> tr, <i>MediaTrack</i> desttrIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CreateTrackSend(<i>MediaTrack</i> tr, <i>MediaTrack</i> desttrIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CreateTrackSend(<i>MediaTrack</i> tr, <i>MediaTrack</i> desttrInOptional)</code><br><br></div>
Create a send/receive (desttrInOptional!=NULL), or a hardware output (desttrInOptional==NULL) with default properties, return &gt;=0 on success (== new send/receive index). See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#RemoveTrackSend">RemoveTrackSend</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetTrackSendInfo">GetSetTrackSendInfo</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackSendInfo_Value">GetTrackSendInfo_Value</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackSendInfo_Value">SetTrackSendInfo_Value</a>.<br><br>
<a name="CSurf_FlushUndo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_FlushUndo(bool force)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_FlushUndo(<i>bool </i>force)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_FlushUndo(<i>boolean</i> force)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_FlushUndo(<i>Boolean</i> force)</code><br><br></div>
call this to force flushing of the undo states after using CSurf_On*Change()<br><br>
<a name="CSurf_GetTouchState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool CSurf_GetTouchState(MediaTrack* trackid, int isPan)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> CSurf_GetTouchState(<i>MediaTrack</i> trackid, <i>int </i>isPan)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_GetTouchState(<i>MediaTrack</i> trackid, <i>integer</i> isPan)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_CSurf_GetTouchState(<i>MediaTrack</i> trackid, <i>Int</i> isPan)</code><br><br></div>
<a name="CSurf_GoEnd"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_GoEnd()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_GoEnd()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_GoEnd()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_GoEnd()</code><br><br></div>
<a name="CSurf_GoStart"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_GoStart()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_GoStart()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_GoStart()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_GoStart()</code><br><br></div>
<a name="CSurf_NumTracks"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CSurf_NumTracks(bool mcpView)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CSurf_NumTracks(<i>bool </i>mcpView)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_NumTracks(<i>boolean</i> mcpView)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CSurf_NumTracks(<i>Boolean</i> mcpView)</code><br><br></div>
<a name="CSurf_OnArrow"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnArrow(int whichdir, bool wantzoom)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnArrow(<i>int </i>whichdir, <i>bool </i>wantzoom)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnArrow(<i>integer</i> whichdir, <i>boolean</i> wantzoom)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnArrow(<i>Int</i> whichdir, <i>Boolean</i> wantzoom)</code><br><br></div>
<a name="CSurf_OnFwd"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnFwd(int seekplay)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnFwd(<i>int </i>seekplay)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnFwd(<i>integer</i> seekplay)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnFwd(<i>Int</i> seekplay)</code><br><br></div>
<a name="CSurf_OnFXChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool CSurf_OnFXChange(MediaTrack* trackid, int en)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> CSurf_OnFXChange(<i>MediaTrack</i> trackid, <i>int </i>en)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnFXChange(<i>MediaTrack</i> trackid, <i>integer</i> en)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_CSurf_OnFXChange(<i>MediaTrack</i> trackid, <i>Int</i> en)</code><br><br></div>
<a name="CSurf_OnInputMonitorChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CSurf_OnInputMonitorChange(MediaTrack* trackid, int monitor)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CSurf_OnInputMonitorChange(<i>MediaTrack</i> trackid, <i>int </i>monitor)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnInputMonitorChange(<i>MediaTrack</i> trackid, <i>integer</i> monitor)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CSurf_OnInputMonitorChange(<i>MediaTrack</i> trackid, <i>Int</i> monitor)</code><br><br></div>
<a name="CSurf_OnInputMonitorChangeEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CSurf_OnInputMonitorChangeEx(MediaTrack* trackid, int monitor, bool allowgang)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CSurf_OnInputMonitorChangeEx(<i>MediaTrack</i> trackid, <i>int </i>monitor, <i>bool </i>allowgang)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnInputMonitorChangeEx(<i>MediaTrack</i> trackid, <i>integer</i> monitor, <i>boolean</i> allowgang)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CSurf_OnInputMonitorChangeEx(<i>MediaTrack</i> trackid, <i>Int</i> monitor, <i>Boolean</i> allowgang)</code><br><br></div>
<a name="CSurf_OnMuteChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool CSurf_OnMuteChange(MediaTrack* trackid, int mute)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> CSurf_OnMuteChange(<i>MediaTrack</i> trackid, <i>int </i>mute)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnMuteChange(<i>MediaTrack</i> trackid, <i>integer</i> mute)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_CSurf_OnMuteChange(<i>MediaTrack</i> trackid, <i>Int</i> mute)</code><br><br></div>
<a name="CSurf_OnMuteChangeEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool CSurf_OnMuteChangeEx(MediaTrack* trackid, int mute, bool allowgang)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> CSurf_OnMuteChangeEx(<i>MediaTrack</i> trackid, <i>int </i>mute, <i>bool </i>allowgang)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnMuteChangeEx(<i>MediaTrack</i> trackid, <i>integer</i> mute, <i>boolean</i> allowgang)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_CSurf_OnMuteChangeEx(<i>MediaTrack</i> trackid, <i>Int</i> mute, <i>Boolean</i> allowgang)</code><br><br></div>
<a name="CSurf_OnPanChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double CSurf_OnPanChange(MediaTrack* trackid, double pan, bool relative)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> CSurf_OnPanChange(<i>MediaTrack</i> trackid, pan, <i>bool </i>relative)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnPanChange(<i>MediaTrack</i> trackid, <i>number</i> pan, <i>boolean</i> relative)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_CSurf_OnPanChange(<i>MediaTrack</i> trackid, <i>Float</i> pan, <i>Boolean</i> relative)</code><br><br></div>
<a name="CSurf_OnPanChangeEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double CSurf_OnPanChangeEx(MediaTrack* trackid, double pan, bool relative, bool allowGang)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> CSurf_OnPanChangeEx(<i>MediaTrack</i> trackid, pan, <i>bool </i>relative, <i>bool </i>allowGang)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnPanChangeEx(<i>MediaTrack</i> trackid, <i>number</i> pan, <i>boolean</i> relative, <i>boolean</i> allowGang)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_CSurf_OnPanChangeEx(<i>MediaTrack</i> trackid, <i>Float</i> pan, <i>Boolean</i> relative, <i>Boolean</i> allowGang)</code><br><br></div>
<a name="CSurf_OnPause"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnPause()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnPause()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnPause()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnPause()</code><br><br></div>
<a name="CSurf_OnPlay"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnPlay()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnPlay()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnPlay()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnPlay()</code><br><br></div>
<a name="CSurf_OnPlayRateChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnPlayRateChange(double playrate)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnPlayRateChange(playrate)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnPlayRateChange(<i>number</i> playrate)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnPlayRateChange(<i>Float</i> playrate)</code><br><br></div>
<a name="CSurf_OnRecArmChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool CSurf_OnRecArmChange(MediaTrack* trackid, int recarm)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> CSurf_OnRecArmChange(<i>MediaTrack</i> trackid, <i>int </i>recarm)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnRecArmChange(<i>MediaTrack</i> trackid, <i>integer</i> recarm)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_CSurf_OnRecArmChange(<i>MediaTrack</i> trackid, <i>Int</i> recarm)</code><br><br></div>
<a name="CSurf_OnRecArmChangeEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool CSurf_OnRecArmChangeEx(MediaTrack* trackid, int recarm, bool allowgang)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> CSurf_OnRecArmChangeEx(<i>MediaTrack</i> trackid, <i>int </i>recarm, <i>bool </i>allowgang)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnRecArmChangeEx(<i>MediaTrack</i> trackid, <i>integer</i> recarm, <i>boolean</i> allowgang)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_CSurf_OnRecArmChangeEx(<i>MediaTrack</i> trackid, <i>Int</i> recarm, <i>Boolean</i> allowgang)</code><br><br></div>
<a name="CSurf_OnRecord"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnRecord()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnRecord()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnRecord()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnRecord()</code><br><br></div>
<a name="CSurf_OnRecvPanChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double CSurf_OnRecvPanChange(MediaTrack* trackid, int recv_index, double pan, bool relative)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> CSurf_OnRecvPanChange(<i>MediaTrack</i> trackid, <i>int </i>recv_index, pan, <i>bool </i>relative)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnRecvPanChange(<i>MediaTrack</i> trackid, <i>integer</i> recv_index, <i>number</i> pan, <i>boolean</i> relative)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_CSurf_OnRecvPanChange(<i>MediaTrack</i> trackid, <i>Int</i> recv_index, <i>Float</i> pan, <i>Boolean</i> relative)</code><br><br></div>
<a name="CSurf_OnRecvVolumeChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double CSurf_OnRecvVolumeChange(MediaTrack* trackid, int recv_index, double volume, bool relative)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> CSurf_OnRecvVolumeChange(<i>MediaTrack</i> trackid, <i>int </i>recv_index, volume, <i>bool </i>relative)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnRecvVolumeChange(<i>MediaTrack</i> trackid, <i>integer</i> recv_index, <i>number</i> volume, <i>boolean</i> relative)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_CSurf_OnRecvVolumeChange(<i>MediaTrack</i> trackid, <i>Int</i> recv_index, <i>Float</i> volume, <i>Boolean</i> relative)</code><br><br></div>
<a name="CSurf_OnRew"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnRew(int seekplay)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnRew(<i>int </i>seekplay)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnRew(<i>integer</i> seekplay)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnRew(<i>Int</i> seekplay)</code><br><br></div>
<a name="CSurf_OnRewFwd"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnRewFwd(int seekplay, int dir)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnRewFwd(<i>int </i>seekplay, <i>int </i>dir)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnRewFwd(<i>integer</i> seekplay, <i>integer</i> dir)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnRewFwd(<i>Int</i> seekplay, <i>Int</i> dir)</code><br><br></div>
<a name="CSurf_OnScroll"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnScroll(int xdir, int ydir)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnScroll(<i>int </i>xdir, <i>int </i>ydir)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnScroll(<i>integer</i> xdir, <i>integer</i> ydir)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnScroll(<i>Int</i> xdir, <i>Int</i> ydir)</code><br><br></div>
<a name="CSurf_OnSelectedChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool CSurf_OnSelectedChange(MediaTrack* trackid, int selected)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> CSurf_OnSelectedChange(<i>MediaTrack</i> trackid, <i>int </i>selected)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnSelectedChange(<i>MediaTrack</i> trackid, <i>integer</i> selected)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_CSurf_OnSelectedChange(<i>MediaTrack</i> trackid, <i>Int</i> selected)</code><br><br></div>
<a name="CSurf_OnSendPanChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double CSurf_OnSendPanChange(MediaTrack* trackid, int send_index, double pan, bool relative)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> CSurf_OnSendPanChange(<i>MediaTrack</i> trackid, <i>int </i>send_index, pan, <i>bool </i>relative)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnSendPanChange(<i>MediaTrack</i> trackid, <i>integer</i> send_index, <i>number</i> pan, <i>boolean</i> relative)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_CSurf_OnSendPanChange(<i>MediaTrack</i> trackid, <i>Int</i> send_index, <i>Float</i> pan, <i>Boolean</i> relative)</code><br><br></div>
<a name="CSurf_OnSendVolumeChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double CSurf_OnSendVolumeChange(MediaTrack* trackid, int send_index, double volume, bool relative)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> CSurf_OnSendVolumeChange(<i>MediaTrack</i> trackid, <i>int </i>send_index, volume, <i>bool </i>relative)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnSendVolumeChange(<i>MediaTrack</i> trackid, <i>integer</i> send_index, <i>number</i> volume, <i>boolean</i> relative)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_CSurf_OnSendVolumeChange(<i>MediaTrack</i> trackid, <i>Int</i> send_index, <i>Float</i> volume, <i>Boolean</i> relative)</code><br><br></div>
<a name="CSurf_OnSoloChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool CSurf_OnSoloChange(MediaTrack* trackid, int solo)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> CSurf_OnSoloChange(<i>MediaTrack</i> trackid, <i>int </i>solo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnSoloChange(<i>MediaTrack</i> trackid, <i>integer</i> solo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_CSurf_OnSoloChange(<i>MediaTrack</i> trackid, <i>Int</i> solo)</code><br><br></div>
<a name="CSurf_OnSoloChangeEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool CSurf_OnSoloChangeEx(MediaTrack* trackid, int solo, bool allowgang)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> CSurf_OnSoloChangeEx(<i>MediaTrack</i> trackid, <i>int </i>solo, <i>bool </i>allowgang)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnSoloChangeEx(<i>MediaTrack</i> trackid, <i>integer</i> solo, <i>boolean</i> allowgang)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_CSurf_OnSoloChangeEx(<i>MediaTrack</i> trackid, <i>Int</i> solo, <i>Boolean</i> allowgang)</code><br><br></div>
<a name="CSurf_OnStop"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnStop()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnStop()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnStop()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnStop()</code><br><br></div>
<a name="CSurf_OnTempoChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnTempoChange(double bpm)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnTempoChange(bpm)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnTempoChange(<i>number</i> bpm)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnTempoChange(<i>Float</i> bpm)</code><br><br></div>
<a name="CSurf_OnTrackSelection"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnTrackSelection(MediaTrack* trackid)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnTrackSelection(<i>MediaTrack</i> trackid)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnTrackSelection(<i>MediaTrack</i> trackid)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnTrackSelection(<i>MediaTrack</i> trackid)</code><br><br></div>
<a name="CSurf_OnVolumeChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double CSurf_OnVolumeChange(MediaTrack* trackid, double volume, bool relative)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> CSurf_OnVolumeChange(<i>MediaTrack</i> trackid, volume, <i>bool </i>relative)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnVolumeChange(<i>MediaTrack</i> trackid, <i>number</i> volume, <i>boolean</i> relative)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_CSurf_OnVolumeChange(<i>MediaTrack</i> trackid, <i>Float</i> volume, <i>Boolean</i> relative)</code><br><br></div>
<a name="CSurf_OnVolumeChangeEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double CSurf_OnVolumeChangeEx(MediaTrack* trackid, double volume, bool relative, bool allowGang)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> CSurf_OnVolumeChangeEx(<i>MediaTrack</i> trackid, volume, <i>bool </i>relative, <i>bool </i>allowGang)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnVolumeChangeEx(<i>MediaTrack</i> trackid, <i>number</i> volume, <i>boolean</i> relative, <i>boolean</i> allowGang)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_CSurf_OnVolumeChangeEx(<i>MediaTrack</i> trackid, <i>Float</i> volume, <i>Boolean</i> relative, <i>Boolean</i> allowGang)</code><br><br></div>
<a name="CSurf_OnWidthChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double CSurf_OnWidthChange(MediaTrack* trackid, double width, bool relative)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> CSurf_OnWidthChange(<i>MediaTrack</i> trackid, width, <i>bool </i>relative)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnWidthChange(<i>MediaTrack</i> trackid, <i>number</i> width, <i>boolean</i> relative)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_CSurf_OnWidthChange(<i>MediaTrack</i> trackid, <i>Float</i> width, <i>Boolean</i> relative)</code><br><br></div>
<a name="CSurf_OnWidthChangeEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double CSurf_OnWidthChangeEx(MediaTrack* trackid, double width, bool relative, bool allowGang)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> CSurf_OnWidthChangeEx(<i>MediaTrack</i> trackid, width, <i>bool </i>relative, <i>bool </i>allowGang)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnWidthChangeEx(<i>MediaTrack</i> trackid, <i>number</i> width, <i>boolean</i> relative, <i>boolean</i> allowGang)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_CSurf_OnWidthChangeEx(<i>MediaTrack</i> trackid, <i>Float</i> width, <i>Boolean</i> relative, <i>Boolean</i> allowGang)</code><br><br></div>
<a name="CSurf_OnZoom"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_OnZoom(int xdir, int ydir)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_OnZoom(<i>int </i>xdir, <i>int </i>ydir)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_OnZoom(<i>integer</i> xdir, <i>integer</i> ydir)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_OnZoom(<i>Int</i> xdir, <i>Int</i> ydir)</code><br><br></div>
<a name="CSurf_ResetAllCachedVolPanStates"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_ResetAllCachedVolPanStates()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_ResetAllCachedVolPanStates()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_ResetAllCachedVolPanStates()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_ResetAllCachedVolPanStates()</code><br><br></div>
<a name="CSurf_ScrubAmt"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_ScrubAmt(double amt)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_ScrubAmt(amt)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_ScrubAmt(<i>number</i> amt)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_ScrubAmt(<i>Float</i> amt)</code><br><br></div>
<a name="CSurf_SetAutoMode"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_SetAutoMode(int mode, I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface* ignoresurf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_SetAutoMode(<i>int </i>mode, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_SetAutoMode(<i>integer</i> mode, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_SetAutoMode(<i>Int</i> mode, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<a name="CSurf_SetPlayState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_SetPlayState(bool play, bool pause, bool rec, I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface* ignoresurf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_SetPlayState(<i>bool </i>play, <i>bool </i>pause, <i>bool </i>rec, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_SetPlayState(<i>boolean</i> play, <i>boolean</i> pause, <i>boolean</i> rec, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_SetPlayState(<i>Boolean</i> play, <i>Boolean</i> pause, <i>Boolean</i> rec, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<a name="CSurf_SetRepeatState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_SetRepeatState(bool rep, I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface* ignoresurf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_SetRepeatState(<i>bool </i>rep, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_SetRepeatState(<i>boolean</i> rep, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_SetRepeatState(<i>Boolean</i> rep, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<a name="CSurf_SetSurfaceMute"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_SetSurfaceMute(MediaTrack* trackid, bool mute, I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface* ignoresurf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_SetSurfaceMute(<i>MediaTrack</i> trackid, <i>bool </i>mute, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_SetSurfaceMute(<i>MediaTrack</i> trackid, <i>boolean</i> mute, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_SetSurfaceMute(<i>MediaTrack</i> trackid, <i>Boolean</i> mute, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<a name="CSurf_SetSurfacePan"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_SetSurfacePan(MediaTrack* trackid, double pan, I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface* ignoresurf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_SetSurfacePan(<i>MediaTrack</i> trackid, pan, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_SetSurfacePan(<i>MediaTrack</i> trackid, <i>number</i> pan, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_SetSurfacePan(<i>MediaTrack</i> trackid, <i>Float</i> pan, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<a name="CSurf_SetSurfaceRecArm"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_SetSurfaceRecArm(MediaTrack* trackid, bool recarm, I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface* ignoresurf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_SetSurfaceRecArm(<i>MediaTrack</i> trackid, <i>bool </i>recarm, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_SetSurfaceRecArm(<i>MediaTrack</i> trackid, <i>boolean</i> recarm, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_SetSurfaceRecArm(<i>MediaTrack</i> trackid, <i>Boolean</i> recarm, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<a name="CSurf_SetSurfaceSelected"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_SetSurfaceSelected(MediaTrack* trackid, bool selected, I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface* ignoresurf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_SetSurfaceSelected(<i>MediaTrack</i> trackid, <i>bool </i>selected, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_SetSurfaceSelected(<i>MediaTrack</i> trackid, <i>boolean</i> selected, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_SetSurfaceSelected(<i>MediaTrack</i> trackid, <i>Boolean</i> selected, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<a name="CSurf_SetSurfaceSolo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_SetSurfaceSolo(MediaTrack* trackid, bool solo, I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface* ignoresurf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_SetSurfaceSolo(<i>MediaTrack</i> trackid, <i>bool </i>solo, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_SetSurfaceSolo(<i>MediaTrack</i> trackid, <i>boolean</i> solo, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_SetSurfaceSolo(<i>MediaTrack</i> trackid, <i>Boolean</i> solo, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<a name="CSurf_SetSurfaceVolume"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_SetSurfaceVolume(MediaTrack* trackid, double volume, I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface* ignoresurf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_SetSurfaceVolume(<i>MediaTrack</i> trackid, volume, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_SetSurfaceVolume(<i>MediaTrack</i> trackid, <i>number</i> volume, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_SetSurfaceVolume(<i>MediaTrack</i> trackid, <i>Float</i> volume, <i>I<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">Reaper</xhighlight>ControlSurface</i> ignoresurf)</code><br><br></div>
<a name="CSurf_SetTrackListChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void CSurf_SetTrackListChange()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>CSurf_SetTrackListChange()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_SetTrackListChange()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_CSurf_SetTrackListChange()</code><br><br></div>
<a name="CSurf_TrackFromID"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* CSurf_TrackFromID(int idx, bool mcpView)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  CSurf_TrackFromID(<i>int </i>idx, <i>bool </i>mcpView)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_TrackFromID(<i>integer</i> idx, <i>boolean</i> mcpView)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_CSurf_TrackFromID(<i>Int</i> idx, <i>Boolean</i> mcpView)</code><br><br></div>
<a name="CSurf_TrackToID"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int CSurf_TrackToID(MediaTrack* track, bool mcpView)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> CSurf_TrackToID(<i>MediaTrack</i> track, <i>bool </i>mcpView)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.CSurf_TrackToID(<i>MediaTrack</i> track, <i>boolean</i> mcpView)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_CSurf_TrackToID(<i>MediaTrack</i> track, <i>Boolean</i> mcpView)</code><br><br></div>
<a name="DB2SLIDER"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double DB2SLIDER(double x)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> DB2SLIDER(x)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DB2SLIDER(<i>number</i> x)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_DB2SLIDER(<i>Float</i> x)</code><br><br></div>
<a name="DeleteEnvelopePointRange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool DeleteEnvelopePointRange(TrackEnvelope* envelope, double time_start, double time_end)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> DeleteEnvelopePointRange(<i>TrackEnvelope</i> envelope, time_start, time_end)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DeleteEnvelopePointRange(<i>TrackEnvelope</i> envelope, <i>number</i> time_start, <i>number</i> time_end)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_DeleteEnvelopePointRange(<i>TrackEnvelope</i> envelope, <i>Float</i> time_start, <i>Float</i> time_end)</code><br><br></div>
Delete a range of envelope points.<br><br>
<a name="DeleteEnvelopePointRangeEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool DeleteEnvelopePointRangeEx(TrackEnvelope* envelope, int autoitem_idx, double time_start, double time_end)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> DeleteEnvelopePointRangeEx(<i>TrackEnvelope</i> envelope, <i>int </i>autoitem_idx, time_start, time_end)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DeleteEnvelopePointRangeEx(<i>TrackEnvelope</i> envelope, <i>integer</i> autoitem_idx, <i>number</i> time_start, <i>number</i> time_end)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_DeleteEnvelopePointRangeEx(<i>TrackEnvelope</i> envelope, <i>Int</i> autoitem_idx, <i>Float</i> time_start, <i>Float</i> time_end)</code><br><br></div>
Delete a range of envelope points. autoitem_idx==-1 for the underlying envelope, 0 for the first automation item on the envelope, etc.<br><br>
<a name="DeleteExtState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void DeleteExtState(const char* section, const char* key, bool persist)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>DeleteExtState("section", "key", <i>bool </i>persist)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DeleteExtState(<i>string</i> section, <i>string</i> key, <i>boolean</i> persist)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_DeleteExtState(<i>String</i> section, <i>String</i> key, <i>Boolean</i> persist)</code><br><br></div>
Delete the extended state value for a specific section and key. persist=true means the value should remain deleted the next time <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> is opened. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetExtState">SetExtState</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetExtState">GetExtState</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#HasExtState">HasExtState</a>.<br><br>
<a name="DeleteProjectMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool DeleteProjectMarker(ReaProject* proj, int markrgnindexnumber, bool isrgn)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> DeleteProjectMarker(<i>ReaProject</i> proj, <i>int </i>markrgnindexnumber, <i>bool </i>isrgn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DeleteProjectMarker(<i>ReaProject</i> proj, <i>integer</i> markrgnindexnumber, <i>boolean</i> isrgn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_DeleteProjectMarker(<i>ReaProject</i> proj, <i>Int</i> markrgnindexnumber, <i>Boolean</i> isrgn)</code><br><br></div>
Delete a marker.  proj==NULL for the active project.<br><br>
<a name="DeleteProjectMarkerByIndex"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool DeleteProjectMarkerByIndex(ReaProject* proj, int markrgnidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> DeleteProjectMarkerByIndex(<i>ReaProject</i> proj, <i>int </i>markrgnidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DeleteProjectMarkerByIndex(<i>ReaProject</i> proj, <i>integer</i> markrgnidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_DeleteProjectMarkerByIndex(<i>ReaProject</i> proj, <i>Int</i> markrgnidx)</code><br><br></div>
Differs from DeleteProjectMarker only in that markrgnidx is 0 for the first marker/region, 1 for the next, etc (see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumProjectMarkers3">EnumProjectMarkers3</a>), rather than representing the displayed marker/region ID number (see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjectMarker4">SetProjectMarker4</a>).<br><br>
<a name="DeleteTakeStretchMarkers"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int DeleteTakeStretchMarkers(MediaItem_Take* take, int idx, const int* countInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> DeleteTakeStretchMarkers(<i>MediaItem_Take</i> take, <i>int </i>idx, <i>optional int</i> countIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DeleteTakeStretchMarkers(<i>MediaItem_Take</i> take, <i>integer</i> idx, <i>optional number</i> countIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_DeleteTakeStretchMarkers(<i>MediaItem_Take</i> take, <i>Int</i> idx, <i>const int</i> countInOptional)</code><br><br></div>
Deletes one or more stretch markers. Returns number of stretch markers deleted.<br><br>
<a name="DeleteTempoTimeSigMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool DeleteTempoTimeSigMarker(ReaProject* project, int markerindex)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> DeleteTempoTimeSigMarker(<i>ReaProject</i> project, <i>int </i>markerindex)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DeleteTempoTimeSigMarker(<i>ReaProject</i> project, <i>integer</i> markerindex)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_DeleteTempoTimeSigMarker(<i>ReaProject</i> project, <i>Int</i> markerindex)</code><br><br></div>
Delete a tempo/time signature marker.<br><br>
<a name="DeleteTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void DeleteTrack(MediaTrack* tr)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>DeleteTrack(<i>MediaTrack</i> tr)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DeleteTrack(<i>MediaTrack</i> tr)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_DeleteTrack(<i>MediaTrack</i> tr)</code><br><br></div>
deletes a track<br><br>
<a name="DeleteTrackMediaItem"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool DeleteTrackMediaItem(MediaTrack* tr, MediaItem* it)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> DeleteTrackMediaItem(<i>MediaTrack</i> tr, <i>MediaItem</i> it)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DeleteTrackMediaItem(<i>MediaTrack</i> tr, <i>MediaItem</i> it)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_DeleteTrackMediaItem(<i>MediaTrack</i> tr, <i>MediaItem</i> it)</code><br><br></div>
<a name="DestroyAudioAccessor"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void DestroyAudioAccessor(AudioAccessor* accessor)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>DestroyAudioAccessor(<i>AudioAccessor</i> accessor)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DestroyAudioAccessor(<i>AudioAccessor</i> accessor)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_DestroyAudioAccessor(<i>AudioAccessor</i> accessor)</code><br><br></div>
Destroy an audio accessor. Must only call from the main thread. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTakeAudioAccessor">CreateTakeAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTrackAudioAccessor">CreateTrackAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorHash">GetAudioAccessorHash</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorStartTime">GetAudioAccessorStartTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorEndTime">GetAudioAccessorEndTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorSamples">GetAudioAccessorSamples</a>. <br><br>
<a name="Dock_UpdateDockID"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Dock_UpdateDockID(const char* ident_str, int whichDock)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Dock_UpdateDockID("ident_str", <i>int </i>whichDock)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Dock_UpdateDockID(<i>string</i> ident_str, <i>integer</i> whichDock)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Dock_UpdateDockID(<i>String</i> ident_str, <i>Int</i> whichDock)</code><br><br></div>
updates preference for docker window ident_str to be in dock whichDock on next open<br><br>
<a name="DockIsChildOfDock"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int DockIsChildOfDock(HWND hwnd, bool* isFloatingDockerOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> DockIsChildOfDock(<i>HWND</i> hwnd, <i>bool &amp;</i>isFloatingDocker)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>boolean </i>isFloatingDocker = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DockIsChildOfDock(<i>HWND</i> hwnd)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>HWND</i> hwnd, <i>Boolean</i> isFloatingDockerOut) = RPR_DockIsChildOfDock(hwnd, isFloatingDockerOut)</code><br><br></div>
returns dock index that contains hwnd, or -1<br><br>
<a name="DockWindowActivate"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void DockWindowActivate(HWND hwnd)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>DockWindowActivate(<i>HWND</i> hwnd)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DockWindowActivate(<i>HWND</i> hwnd)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_DockWindowActivate(<i>HWND</i> hwnd)</code><br><br></div>
<a name="DockWindowAdd"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void DockWindowAdd(HWND hwnd, const char* name, int pos, bool allowShow)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>DockWindowAdd(<i>HWND</i> hwnd, "name", <i>int </i>pos, <i>bool </i>allowShow)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DockWindowAdd(<i>HWND</i> hwnd, <i>string</i> name, <i>integer</i> pos, <i>boolean</i> allowShow)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_DockWindowAdd(<i>HWND</i> hwnd, <i>String</i> name, <i>Int</i> pos, <i>Boolean</i> allowShow)</code><br><br></div>
<a name="DockWindowAddEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void DockWindowAddEx(HWND hwnd, const char* name, const char* identstr, bool allowShow)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>DockWindowAddEx(<i>HWND</i> hwnd, "name", "identstr", <i>bool </i>allowShow)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DockWindowAddEx(<i>HWND</i> hwnd, <i>string</i> name, <i>string</i> identstr, <i>boolean</i> allowShow)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_DockWindowAddEx(<i>HWND</i> hwnd, <i>String</i> name, <i>String</i> identstr, <i>Boolean</i> allowShow)</code><br><br></div>
<a name="DockWindowRefresh"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void DockWindowRefresh()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>DockWindowRefresh()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DockWindowRefresh()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_DockWindowRefresh()</code><br><br></div>
<a name="DockWindowRefreshForHWND"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void DockWindowRefreshForHWND(HWND hwnd)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>DockWindowRefreshForHWND(<i>HWND</i> hwnd)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DockWindowRefreshForHWND(<i>HWND</i> hwnd)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_DockWindowRefreshForHWND(<i>HWND</i> hwnd)</code><br><br></div>
<a name="DockWindowRemove"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void DockWindowRemove(HWND hwnd)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>DockWindowRemove(<i>HWND</i> hwnd)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.DockWindowRemove(<i>HWND</i> hwnd)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_DockWindowRemove(<i>HWND</i> hwnd)</code><br><br></div>
<a name="EditTempoTimeSigMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool EditTempoTimeSigMarker(ReaProject* project, int markerindex)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> EditTempoTimeSigMarker(<i>ReaProject</i> project, <i>int </i>markerindex)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EditTempoTimeSigMarker(<i>ReaProject</i> project, <i>integer</i> markerindex)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_EditTempoTimeSigMarker(<i>ReaProject</i> project, <i>Int</i> markerindex)</code><br><br></div>
Open the tempo/time signature marker editor dialog.<br><br>
<a name="EnsureNotCompletelyOffscreen"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void EnsureNotCompletelyOffscreen(RECT* rInOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>EnsureNotCompletelyOffscreen(<i>int &amp;</i>rIn.left, <i>int &amp;</i>rIn.top, <i>int &amp;</i>rIn.right, <i>int &amp;</i>rIn.bot)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i>rIn.left, <i>number</i>rIn.top, <i>number</i>rIn.right, <i>number</i>rIn.bot = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnsureNotCompletelyOffscreen()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_EnsureNotCompletelyOffscreen(<i>RECT</i> rInOut)</code><br><br></div>
call with a saved window rect for your window and it'll correct any positioning info.<br><br>
<a name="EnumerateFiles"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* EnumerateFiles(const char* path, int fileindex)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  EnumerateFiles(#retval, "path", <i>int </i>fileindex)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumerateFiles(<i>string</i> path, <i>integer</i> fileindex)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_EnumerateFiles(<i>String</i> path, <i>Int</i> fileindex)</code><br><br></div>
List the files in the "path" directory. Returns NULL (or empty string, in Lua) when all files have been listed. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumerateSubdirectories">EnumerateSubdirectories</a><br><br>
<a name="EnumerateSubdirectories"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* EnumerateSubdirectories(const char* path, int subdirindex)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  EnumerateSubdirectories(#retval, "path", <i>int </i>subdirindex)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumerateSubdirectories(<i>string</i> path, <i>integer</i> subdirindex)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_EnumerateSubdirectories(<i>String</i> path, <i>Int</i> subdirindex)</code><br><br></div>
List the subdirectories in the "path" directory. Returns NULL (or empty string, in Lua) when all subdirectories have been listed. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumerateFiles">EnumerateFiles</a><br><br>
<a name="EnumPitchShiftModes"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool EnumPitchShiftModes(int mode, const char** strOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> EnumPitchShiftModes(<i>int </i>mode, #str)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>str = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumPitchShiftModes(<i>integer</i> mode)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_EnumPitchShiftModes(<i>Int</i> mode, <i>String</i> strOut)</code><br><br></div>
Start querying modes at 0, returns FALSE when no more modes possible, sets strOut to NULL if a mode is currently unsupported<br><br>
<a name="EnumPitchShiftSubModes"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* EnumPitchShiftSubModes(int mode, int submode)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  EnumPitchShiftSubModes(#retval, <i>int </i>mode, <i>int </i>submode)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumPitchShiftSubModes(<i>integer</i> mode, <i>integer</i> submode)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_EnumPitchShiftSubModes(<i>Int</i> mode, <i>Int</i> submode)</code><br><br></div>
Returns submode name, or NULL<br><br>
<a name="EnumProjectMarkers"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int EnumProjectMarkers(int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> EnumProjectMarkers(<i>int </i>idx, <i>bool &amp;</i>isrgn, <i>&amp;</i>pos, <i>&amp;</i>rgnend, #name, <i>int &amp;</i>markrgnindexnumber)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>boolean </i>isrgn, <i>number </i>pos, <i>number </i>rgnend, <i>string </i>name, <i>number </i>markrgnindexnumber = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumProjectMarkers(<i>integer</i> idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>Int</i> idx, <i>Boolean</i> isrgnOut, <i>Float</i> posOut, <i>Float</i> rgnendOut, <i>String</i> nameOut, <i>Int</i> markrgnindexnumberOut) = RPR_EnumProjectMarkers(idx, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut)</code><br><br></div>
<a name="EnumProjectMarkers2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int EnumProjectMarkers2(ReaProject* proj, int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> EnumProjectMarkers2(<i>ReaProject</i> proj, <i>int </i>idx, <i>bool &amp;</i>isrgn, <i>&amp;</i>pos, <i>&amp;</i>rgnend, #name, <i>int &amp;</i>markrgnindexnumber)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>boolean </i>isrgn, <i>number </i>pos, <i>number </i>rgnend, <i>string </i>name, <i>number </i>markrgnindexnumber = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumProjectMarkers2(<i>ReaProject</i> proj, <i>integer</i> idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>ReaProject</i> proj, <i>Int</i> idx, <i>Boolean</i> isrgnOut, <i>Float</i> posOut, <i>Float</i> rgnendOut, <i>String</i> nameOut, <i>Int</i> markrgnindexnumberOut) = RPR_EnumProjectMarkers2(proj, idx, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut)</code><br><br></div>
<a name="EnumProjectMarkers3"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int EnumProjectMarkers3(ReaProject* proj, int idx, bool* isrgnOut, double* posOut, double* rgnendOut, const char** nameOut, int* markrgnindexnumberOut, int* colorOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> EnumProjectMarkers3(<i>ReaProject</i> proj, <i>int </i>idx, <i>bool &amp;</i>isrgn, <i>&amp;</i>pos, <i>&amp;</i>rgnend, #name, <i>int &amp;</i>markrgnindexnumber, <i>int &amp;</i>color)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>boolean </i>isrgn, <i>number </i>pos, <i>number </i>rgnend, <i>string </i>name, <i>number </i>markrgnindexnumber, <i>number </i>color = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumProjectMarkers3(<i>ReaProject</i> proj, <i>integer</i> idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>ReaProject</i> proj, <i>Int</i> idx, <i>Boolean</i> isrgnOut, <i>Float</i> posOut, <i>Float</i> rgnendOut, <i>String</i> nameOut, <i>Int</i> markrgnindexnumberOut, <i>Int</i> colorOut) = RPR_EnumProjectMarkers3(proj, idx, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut, colorOut)</code><br><br></div>
<a name="EnumProjects"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>ReaProject* EnumProjects(int idx, char* projfn, int projfn_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>ReaProject</i>  EnumProjects(<i>int </i>idx, #projfn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>ReaProject</i> retval, <i>string </i>projfn = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumProjects(<i>integer</i> idx, <i>string </i>projfn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>ReaProject</i> retval, <i>Int</i> idx, <i>String</i> projfn, <i>Int</i> projfn_sz) = RPR_EnumProjects(idx, projfn, projfn_sz)</code><br><br></div>
idx=-1 for current project,projfn can be NULL if not interested in filename. use idx 0x40000000 for currently rendering project, if any.<br><br>
<a name="EnumProjExtState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool EnumProjExtState(ReaProject* proj, const char* extname, int idx, char* keyOutOptional, int keyOutOptional_sz, char* valOutOptional, int valOutOptional_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> EnumProjExtState(<i>ReaProject</i> proj, "extname", <i>int </i>idx, <i>optional </i>#key, <i>optional </i>#val)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>optional </i><i>string </i>key, <i>optional </i><i>string </i>val = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumProjExtState(<i>ReaProject</i> proj, <i>string</i> extname, <i>integer</i> idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>ReaProject</i> proj, <i>String</i> extname, <i>Int</i> idx, <i>String</i> keyOutOptional, <i>Int</i> keyOutOptional_sz, <i>String</i> valOutOptional, <i>Int</i> valOutOptional_sz) = RPR_EnumProjExtState(proj, extname, idx, keyOutOptional, keyOutOptional_sz, valOutOptional, valOutOptional_sz)</code><br><br></div>
Enumerate the data stored with the project for a specific extname. Returns false when there is no more data. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjExtState">SetProjExtState</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjExtState">GetProjExtState</a>.<br><br>
<a name="EnumRegionRenderMatrix"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* EnumRegionRenderMatrix(ReaProject* proj, int regionindex, int rendertrack)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  EnumRegionRenderMatrix(<i>ReaProject</i> proj, <i>int </i>regionindex, <i>int </i>rendertrack)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumRegionRenderMatrix(<i>ReaProject</i> proj, <i>integer</i> regionindex, <i>integer</i> rendertrack)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_EnumRegionRenderMatrix(<i>ReaProject</i> proj, <i>Int</i> regionindex, <i>Int</i> rendertrack)</code><br><br></div>
Enumerate which tracks will be rendered within this region when using the region render matrix. When called with rendertrack==0, the function returns the first track that will be rendered (which may be the master track); rendertrack==1 will return the next track rendered, and so on. The function returns NULL when there are no more tracks that will be rendered within this region.<br><br>
<a name="EnumTrackMIDIProgramNames"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool EnumTrackMIDIProgramNames(int track, int programNumber, char* programName, int programName_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> EnumTrackMIDIProgramNames(<i>int </i>track, <i>int </i>programNumber, #programName)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>programName = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumTrackMIDIProgramNames(<i>integer</i> track, <i>integer</i> programNumber, <i>string </i>programName)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>Int</i> track, <i>Int</i> programNumber, <i>String</i> programName, <i>Int</i> programName_sz) = RPR_EnumTrackMIDIProgramNames(track, programNumber, programName, programName_sz)</code><br><br></div>
returns false if there are no plugins on the track that support MIDI programs,or if all programs have been enumerated<br><br>
<a name="EnumTrackMIDIProgramNamesEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool EnumTrackMIDIProgramNamesEx(ReaProject* proj, MediaTrack* track, int programNumber, char* programName, int programName_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> EnumTrackMIDIProgramNamesEx(<i>ReaProject</i> proj, <i>MediaTrack</i> track, <i>int </i>programNumber, #programName)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>programName = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.EnumTrackMIDIProgramNamesEx(<i>ReaProject</i> proj, <i>MediaTrack</i> track, <i>integer</i> programNumber, <i>string </i>programName)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>ReaProject</i> proj, <i>MediaTrack</i> track, <i>Int</i> programNumber, <i>String</i> programName, <i>Int</i> programName_sz) = RPR_EnumTrackMIDIProgramNamesEx(proj, track, programNumber, programName, programName_sz)</code><br><br></div>
returns false if there are no plugins on the track that support MIDI programs,or if all programs have been enumerated<br><br>
<a name="Envelope_Evaluate"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int Envelope_Evaluate(TrackEnvelope* envelope, double time, double samplerate, int samplesRequested, double* valueOutOptional, double* dVdSOutOptional, double* ddVdSOutOptional, double* dddVdSOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> Envelope_Evaluate(<i>TrackEnvelope</i> envelope, time, samplerate, <i>int </i>samplesRequested, <i>optional &amp;</i>value, <i>optional &amp;</i>dVdS, <i>optional &amp;</i>ddVdS, <i>optional &amp;</i>dddVdS)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>optional number </i>value, <i>optional number </i>dVdS, <i>optional number </i>ddVdS, <i>optional number </i>dddVdS = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Envelope_Evaluate(<i>TrackEnvelope</i> envelope, <i>number</i> time, <i>number</i> samplerate, <i>integer</i> samplesRequested)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>TrackEnvelope</i> envelope, <i>Float</i> time, <i>Float</i> samplerate, <i>Int</i> samplesRequested, <i>Float</i> valueOutOptional, <i>Float</i> dVdSOutOptional, <i>Float</i> ddVdSOutOptional, <i>Float</i> dddVdSOutOptional) = RPR_Envelope_Evaluate(envelope, time, samplerate, samplesRequested, valueOutOptional, dVdSOutOptional, ddVdSOutOptional, dddVdSOutOptional)</code><br><br></div>
Get the effective envelope value at a given time position. samplesRequested is how long the caller expects until the next call to Envelope_Evaluate (often, the buffer block size). The return value is how many samples beyond that time position that the returned values are valid. dVdS is the change in value per sample (first derivative), ddVdS is the seond derivative, dddVdS is the third derivative. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeScalingMode">GetEnvelopeScalingMode</a>.<br><br>
<a name="Envelope_FormatValue"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Envelope_FormatValue(TrackEnvelope* env, double value, char* bufOut, int bufOut_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Envelope_FormatValue(<i>TrackEnvelope</i> env, value, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Envelope_FormatValue(<i>TrackEnvelope</i> env, <i>number</i> value)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>TrackEnvelope</i> env, <i>Float</i> value, <i>String</i> bufOut, <i>Int</i> bufOut_sz) = RPR_Envelope_FormatValue(env, value, bufOut, bufOut_sz)</code><br><br></div>
Formats the value of an envelope to a user-readable form<br><br>
<a name="Envelope_GetParentTake"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem_Take* Envelope_GetParentTake(TrackEnvelope* env, int* indexOutOptional, int* index2OutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem_Take</i>  Envelope_GetParentTake(<i>TrackEnvelope</i> env, <i>optional int &amp;</i>index, <i>optional int &amp;</i>index2)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem_Take</i> retval, <i>optional number </i>index, <i>optional number </i>index2 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Envelope_GetParentTake(<i>TrackEnvelope</i> env)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>MediaItem_Take</i> retval, <i>TrackEnvelope</i> env, <i>Int</i> indexOutOptional, <i>Int</i> index2OutOptional) = RPR_Envelope_GetParentTake(env, indexOutOptional, index2OutOptional)</code><br><br></div>
If take envelope, gets the take from the envelope. If FX, indexOutOptional set to FX index, index2OutOptional set to parameter index, otherwise -1.<br><br>
<a name="Envelope_GetParentTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* Envelope_GetParentTrack(TrackEnvelope* env, int* indexOutOptional, int* index2OutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  Envelope_GetParentTrack(<i>TrackEnvelope</i> env, <i>optional int &amp;</i>index, <i>optional int &amp;</i>index2)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> retval, <i>optional number </i>index, <i>optional number </i>index2 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Envelope_GetParentTrack(<i>TrackEnvelope</i> env)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>MediaTrack</i> retval, <i>TrackEnvelope</i> env, <i>Int</i> indexOutOptional, <i>Int</i> index2OutOptional) = RPR_Envelope_GetParentTrack(env, indexOutOptional, index2OutOptional)</code><br><br></div>
If track envelope, gets the track from the envelope. If FX, indexOutOptional set to FX index, index2OutOptional set to parameter index, otherwise -1.<br><br>
<a name="Envelope_SortPoints"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool Envelope_SortPoints(TrackEnvelope* envelope)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> Envelope_SortPoints(<i>TrackEnvelope</i> envelope)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Envelope_SortPoints(<i>TrackEnvelope</i> envelope)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_Envelope_SortPoints(<i>TrackEnvelope</i> envelope)</code><br><br></div>
Sort envelope points by time. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopePoint">SetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#InsertEnvelopePoint">InsertEnvelopePoint</a>.<br><br>
<a name="Envelope_SortPointsEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool Envelope_SortPointsEx(TrackEnvelope* envelope, int autoitem_idx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> Envelope_SortPointsEx(<i>TrackEnvelope</i> envelope, <i>int </i>autoitem_idx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Envelope_SortPointsEx(<i>TrackEnvelope</i> envelope, <i>integer</i> autoitem_idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_Envelope_SortPointsEx(<i>TrackEnvelope</i> envelope, <i>Int</i> autoitem_idx)</code><br><br></div>
Sort envelope points by time.  autoitem_idx==-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopePoint">SetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#InsertEnvelopePoint">InsertEnvelopePoint</a>.<br><br>
<a name="ExecProcess"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* ExecProcess(const char* cmdline, int timeoutmsec)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  ExecProcess(#retval, "cmdline", <i>int </i>timeoutmsec)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ExecProcess(<i>string</i> cmdline, <i>integer</i> timeoutmsec)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_ExecProcess(<i>String</i> cmdline, <i>Int</i> timeoutmsec)</code><br><br></div>
Executes command line, returns NULL on total failure, otherwise the return value, a newline, and then the output of the command. If timeoutmsec is 0, command will be allowed to run indefinitely (recommended for large amounts of returned output). timeoutmsec is -1 for no wait/terminate, -2 for no wait and minimize<br><br>
<a name="file_exists"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool file_exists(const char* path)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> file_exists("path")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.file_exists(<i>string</i> path)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_file_exists(<i>String</i> path)</code><br><br></div>
returns true if path points to a valid, readable file<br><br>
<a name="FindTempoTimeSigMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int FindTempoTimeSigMarker(ReaProject* project, double time)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> FindTempoTimeSigMarker(<i>ReaProject</i> project, time)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.FindTempoTimeSigMarker(<i>ReaProject</i> project, <i>number</i> time)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_FindTempoTimeSigMarker(<i>ReaProject</i> project, <i>Float</i> time)</code><br><br></div>
Find the tempo/time signature marker that falls at or before this time position (the marker that is in effect as of this time position).<br><br>
<a name="format_timestr"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void format_timestr(double tpos, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>format_timestr(tpos, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.format_timestr(<i>number</i> tpos, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> tpos, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_format_timestr(tpos, buf, buf_sz)</code><br><br></div>
Format tpos (which is time in seconds) as hh:mm:ss.sss. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#format_timestr_pos">format_timestr_pos</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#format_timestr_len">format_timestr_len</a>.<br><br>
<a name="format_timestr_len"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void format_timestr_len(double tpos, char* buf, int buf_sz, double offset, int modeoverride)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>format_timestr_len(tpos, #buf, offset, <i>int </i>modeoverride)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.format_timestr_len(<i>number</i> tpos, <i>string </i>buf, <i>number</i> offset, <i>integer</i> modeoverride)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> tpos, <i>String</i> buf, <i>Int</i> buf_sz, <i>Float</i> offset, <i>Int</i> modeoverride) = RPR_format_timestr_len(tpos, buf, buf_sz, offset, modeoverride)</code><br><br></div>
time formatting mode overrides: -1=proj default.<br>
0=time<br>
1=measures.beats + time<br>
2=measures.beats<br>
3=seconds<br>
4=samples<br>
5=h:m:s:f<br>
offset is start of where the length will be calculated from<br><br>
<a name="format_timestr_pos"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void format_timestr_pos(double tpos, char* buf, int buf_sz, int modeoverride)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>format_timestr_pos(tpos, #buf, <i>int </i>modeoverride)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.format_timestr_pos(<i>number</i> tpos, <i>string </i>buf, <i>integer</i> modeoverride)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> tpos, <i>String</i> buf, <i>Int</i> buf_sz, <i>Int</i> modeoverride) = RPR_format_timestr_pos(tpos, buf, buf_sz, modeoverride)</code><br><br></div>
time formatting mode overrides: -1=proj default.<br>
0=time<br>
1=measures.beats + time<br>
2=measures.beats<br>
3=seconds<br>
4=samples<br>
5=h:m:s:f<br>
<br><br>
<a name="genGuid"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void genGuid(GUID* g)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>genGuid(#gGUID)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>gGUID = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.genGuid(<i>string </i>gGUID)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_genGuid(<i>GUID</i> g)</code><br><br></div>
<a name="get_ini_file"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* get_ini_file()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  get_ini_file(#retval)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.get_ini_file()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_get_ini_file()</code><br><br></div>
Get <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ini full filename.<br><br>
<a name="GetActiveTake"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem_Take* GetActiveTake(MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem_Take</i>  GetActiveTake(<i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem_Take</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetActiveTake(<i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem_Take</i>  RPR_GetActiveTake(<i>MediaItem</i> item)</code><br><br></div>
get the active take in this item<br><br>
<a name="GetAllProjectPlayStates"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetAllProjectPlayStates(ReaProject* ignoreProject)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetAllProjectPlayStates(<i>ReaProject</i> ignoreProject)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetAllProjectPlayStates(<i>ReaProject</i> ignoreProject)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetAllProjectPlayStates(<i>ReaProject</i> ignoreProject)</code><br><br></div>
returns the bitwise OR of all project play states (1=playing, 2=pause, 4=recording)<br><br>
<a name="GetAppVersion"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetAppVersion()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetAppVersion(#retval)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetAppVersion()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_GetAppVersion()</code><br><br></div>
<a name="GetArmedCommand"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetArmedCommand(char* secOut, int secOut_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetArmedCommand(#sec)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>string </i>sec = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetArmedCommand()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>String</i> secOut, <i>Int</i> secOut_sz) = RPR_GetArmedCommand(secOut, secOut_sz)</code><br><br></div>
gets the currently armed command and section name (returns 0 if nothing armed). section name is empty-string for main section.<br><br>
<a name="GetAudioAccessorEndTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetAudioAccessorEndTime(AudioAccessor* accessor)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetAudioAccessorEndTime(<i>AudioAccessor</i> accessor)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetAudioAccessorEndTime(<i>AudioAccessor</i> accessor)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetAudioAccessorEndTime(<i>AudioAccessor</i> accessor)</code><br><br></div>
Get the end time of the audio that can be returned from this accessor. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTakeAudioAccessor">CreateTakeAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTrackAudioAccessor">CreateTrackAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DestroyAudioAccessor">DestroyAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorHash">GetAudioAccessorHash</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorStartTime">GetAudioAccessorStartTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorSamples">GetAudioAccessorSamples</a>.<br><br>
<a name="GetAudioAccessorHash"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetAudioAccessorHash(AudioAccessor* accessor, char* hashNeed128)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetAudioAccessorHash(<i>AudioAccessor</i> accessor, #hashNeed128)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>hashNeed128 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetAudioAccessorHash(<i>AudioAccessor</i> accessor, <i>string </i>hashNeed128)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>AudioAccessor</i> accessor, <i>String</i> hashNeed128) = RPR_GetAudioAccessorHash(accessor, hashNeed128)</code><br><br></div>
Get a short hash string (128 chars or less) that will change only if the underlying samples change.  See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTakeAudioAccessor">CreateTakeAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTrackAudioAccessor">CreateTrackAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DestroyAudioAccessor">DestroyAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorStartTime">GetAudioAccessorStartTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorEndTime">GetAudioAccessorEndTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorSamples">GetAudioAccessorSamples</a>.<br><br>
<a name="GetAudioAccessorSamples"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetAudioAccessorSamples(AudioAccessor* accessor, int samplerate, int numchannels, double starttime_sec, int numsamplesperchannel, double* samplebuffer)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetAudioAccessorSamples(<i>AudioAccessor</i> accessor, <i>int </i>samplerate, <i>int </i>numchannels, starttime_sec, <i>int </i>numsamplesperchannel, <i>buffer_ptr </i>samplebuffer)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetAudioAccessorSamples(<i>AudioAccessor</i> accessor, <i>integer</i> samplerate, <i>integer</i> numchannels, <i>number</i> starttime_sec, <i>integer</i> numsamplesperchannel, <i><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array </i>samplebuffer)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>AudioAccessor</i> accessor, <i>Int</i> samplerate, <i>Int</i> numchannels, <i>Float</i> starttime_sec, <i>Int</i> numsamplesperchannel, <i>Float</i> samplebuffer) = RPR_GetAudioAccessorSamples(accessor, samplerate, numchannels, starttime_sec, numsamplesperchannel, samplebuffer)</code><br><br></div>
Get a block of samples from the audio accessor. Samples are extracted immediately pre-FX, and returned interleaved (first sample of first channel, first sample of second channel...). Returns 0 if no audio, 1 if audio, -1 on error. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTakeAudioAccessor">CreateTakeAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTrackAudioAccessor">CreateTrackAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DestroyAudioAccessor">DestroyAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorHash">GetAudioAccessorHash</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorStartTime">GetAudioAccessorStartTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorEndTime">GetAudioAccessorEndTime</a>.<br>
<br>
This function has special handling in Python, and only returns two objects, the API function return value, and the sample buffer. Example usage:<br>
<br>
<code>tr = RPR_GetTrack(0, 0)<br>
aa = RPR_CreateTrackAudioAccessor(tr)<br>
buf = list([0]*2*1024) # 2 channels, 1024 samples each, initialized to zero<br>
pos = 0.0<br>
(ret, buf) = GetAudioAccessorSamples(aa, 44100, 2, pos, 1024, buf)<br>
# buf now holds the first 2*1024 audio samples from the track.<br>
# typically GetAudioAccessorSamples() would be called within a loop, increasing pos each time.<br>
</code><br><br>
<a name="GetAudioAccessorStartTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetAudioAccessorStartTime(AudioAccessor* accessor)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetAudioAccessorStartTime(<i>AudioAccessor</i> accessor)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetAudioAccessorStartTime(<i>AudioAccessor</i> accessor)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetAudioAccessorStartTime(<i>AudioAccessor</i> accessor)</code><br><br></div>
Get the start time of the audio that can be returned from this accessor. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTakeAudioAccessor">CreateTakeAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTrackAudioAccessor">CreateTrackAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DestroyAudioAccessor">DestroyAudioAccessor</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorHash">GetAudioAccessorHash</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorEndTime">GetAudioAccessorEndTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetAudioAccessorSamples">GetAudioAccessorSamples</a>.<br><br>
<a name="GetAudioDeviceInfo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetAudioDeviceInfo(const char* attribute, char* desc, int desc_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetAudioDeviceInfo("attribute", #desc)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>desc = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetAudioDeviceInfo(<i>string</i> attribute, <i>string </i>desc)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>String</i> attribute, <i>String</i> desc, <i>Int</i> desc_sz) = RPR_GetAudioDeviceInfo(attribute, desc, desc_sz)</code><br><br></div>
get information about the currently open audio device. attribute can be MODE, IDENT_IN, IDENT_OUT, BSIZE, SRATE, BPS. returns false if unknown attribute or device not open.<br><br>
<a name="GetConfigWantsDock"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetConfigWantsDock(const char* ident_str)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetConfigWantsDock("ident_str")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetConfigWantsDock(<i>string</i> ident_str)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetConfigWantsDock(<i>String</i> ident_str)</code><br><br></div>
gets the dock ID desired by ident_str, if any<br><br>
<a name="GetCurrentProjectInLoadSave"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>ReaProject* GetCurrentProjectInLoadSave()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>ReaProject</i>  GetCurrentProjectInLoadSave()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>ReaProject</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetCurrentProjectInLoadSave()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>ReaProject</i>  RPR_GetCurrentProjectInLoadSave()</code><br><br></div>
returns current project if in load/save (usually only used from project_config_extension_t)<br><br>
<a name="GetCursorContext"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetCursorContext()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetCursorContext()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetCursorContext()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetCursorContext()</code><br><br></div>
return the current cursor context: 0 if track panels, 1 if items, 2 if envelopes, otherwise unknown<br><br>
<a name="GetCursorContext2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetCursorContext2(bool want_last_valid)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetCursorContext2(<i>bool </i>want_last_valid)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetCursorContext2(<i>boolean</i> want_last_valid)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetCursorContext2(<i>Boolean</i> want_last_valid)</code><br><br></div>
0 if track panels, 1 if items, 2 if envelopes, otherwise unknown (unlikely when want_last_valid is true)<br><br>
<a name="GetCursorPosition"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetCursorPosition()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetCursorPosition()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetCursorPosition()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetCursorPosition()</code><br><br></div>
edit cursor position<br><br>
<a name="GetCursorPositionEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetCursorPositionEx(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetCursorPositionEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetCursorPositionEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetCursorPositionEx(<i>ReaProject</i> proj)</code><br><br></div>
edit cursor position<br><br>
<a name="GetDisplayedMediaItemColor"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetDisplayedMediaItemColor(MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetDisplayedMediaItemColor(<i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetDisplayedMediaItemColor(<i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetDisplayedMediaItemColor(<i>MediaItem</i> item)</code><br><br></div>
see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetDisplayedMediaItemColor2">GetDisplayedMediaItemColor2</a>.<br><br>
<a name="GetDisplayedMediaItemColor2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetDisplayedMediaItemColor2(MediaItem* item, MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetDisplayedMediaItemColor2(<i>MediaItem</i> item, <i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetDisplayedMediaItemColor2(<i>MediaItem</i> item, <i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetDisplayedMediaItemColor2(<i>MediaItem</i> item, <i>MediaItem_Take</i> take)</code><br><br></div>
Returns the custom take, item, or track color that is used (according to the user preference) to color the media item. The returned color is OS dependent|0x01000000 (i.e. ColorToNative(r,g,b)|0x01000000), so a return of zero means "no color", not black.<br><br>
<a name="GetEnvelopeName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetEnvelopeName(TrackEnvelope* env, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetEnvelopeName(<i>TrackEnvelope</i> env, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetEnvelopeName(<i>TrackEnvelope</i> env, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>TrackEnvelope</i> env, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_GetEnvelopeName(env, buf, buf_sz)</code><br><br></div>
<a name="GetEnvelopePoint"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetEnvelopePoint(TrackEnvelope* envelope, int ptidx, double* timeOutOptional, double* valueOutOptional, int* shapeOutOptional, double* tensionOutOptional, bool* selectedOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetEnvelopePoint(<i>TrackEnvelope</i> envelope, <i>int </i>ptidx, <i>optional &amp;</i>time, <i>optional &amp;</i>value, <i>optional int &amp;</i>shape, <i>optional &amp;</i>tension, <i>optional bool &amp;</i>selected)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>optional number </i>time, <i>optional number </i>value, <i>optional number </i>shape, <i>optional number </i>tension, <i>optional boolean </i>selected = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetEnvelopePoint(<i>TrackEnvelope</i> envelope, <i>integer</i> ptidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>TrackEnvelope</i> envelope, <i>Int</i> ptidx, <i>Float</i> timeOutOptional, <i>Float</i> valueOutOptional, <i>Int</i> shapeOutOptional, <i>Float</i> tensionOutOptional, <i>Boolean</i> selectedOutOptional) = RPR_GetEnvelopePoint(envelope, ptidx, timeOutOptional, valueOutOptional, shapeOutOptional, tensionOutOptional, selectedOutOptional)</code><br><br></div>
Get the attributes of an envelope point. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePointByTime">GetEnvelopePointByTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopePoint">SetEnvelopePoint</a>.<br><br>
<a name="GetEnvelopePointByTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetEnvelopePointByTime(TrackEnvelope* envelope, double time)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetEnvelopePointByTime(<i>TrackEnvelope</i> envelope, time)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetEnvelopePointByTime(<i>TrackEnvelope</i> envelope, <i>number</i> time)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetEnvelopePointByTime(<i>TrackEnvelope</i> envelope, <i>Float</i> time)</code><br><br></div>
Returns the envelope point at or immediately prior to the given time position. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePoint">GetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopePoint">SetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Envelope_Evaluate">Envelope_Evaluate</a>.<br><br>
<a name="GetEnvelopePointByTimeEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetEnvelopePointByTimeEx(TrackEnvelope* envelope, int autoitem_idx, double time)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetEnvelopePointByTimeEx(<i>TrackEnvelope</i> envelope, <i>int </i>autoitem_idx, time)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetEnvelopePointByTimeEx(<i>TrackEnvelope</i> envelope, <i>integer</i> autoitem_idx, <i>number</i> time)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetEnvelopePointByTimeEx(<i>TrackEnvelope</i> envelope, <i>Int</i> autoitem_idx, <i>Float</i> time)</code><br><br></div>
Returns the envelope point at or immediately prior to the given time position.  autoitem_idx==-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePoint">GetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopePoint">SetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Envelope_Evaluate">Envelope_Evaluate</a>.<br><br>
<a name="GetEnvelopePointEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, int ptidx, double* timeOutOptional, double* valueOutOptional, int* shapeOutOptional, double* tensionOutOptional, bool* selectedOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetEnvelopePointEx(<i>TrackEnvelope</i> envelope, <i>int </i>autoitem_idx, <i>int </i>ptidx, <i>optional &amp;</i>time, <i>optional &amp;</i>value, <i>optional int &amp;</i>shape, <i>optional &amp;</i>tension, <i>optional bool &amp;</i>selected)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>optional number </i>time, <i>optional number </i>value, <i>optional number </i>shape, <i>optional number </i>tension, <i>optional boolean </i>selected = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetEnvelopePointEx(<i>TrackEnvelope</i> envelope, <i>integer</i> autoitem_idx, <i>integer</i> ptidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>TrackEnvelope</i> envelope, <i>Int</i> autoitem_idx, <i>Int</i> ptidx, <i>Float</i> timeOutOptional, <i>Float</i> valueOutOptional, <i>Int</i> shapeOutOptional, <i>Float</i> tensionOutOptional, <i>Boolean</i> selectedOutOptional) = RPR_GetEnvelopePointEx(envelope, autoitem_idx, ptidx, timeOutOptional, valueOutOptional, shapeOutOptional, tensionOutOptional, selectedOutOptional)</code><br><br></div>
Get the attributes of an envelope point.  autoitem_idx==-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePointByTime">GetEnvelopePointByTime</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopePoint">SetEnvelopePoint</a>.<br><br>
<a name="GetEnvelopeScalingMode"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetEnvelopeScalingMode(TrackEnvelope* env)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetEnvelopeScalingMode(<i>TrackEnvelope</i> env)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetEnvelopeScalingMode(<i>TrackEnvelope</i> env)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetEnvelopeScalingMode(<i>TrackEnvelope</i> env)</code><br><br></div>
Returns the envelope scaling mode: 0=no scaling, 1=fader scaling. All API functions deal with raw envelope point values, to convert raw from/to scaled values see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ScaleFromEnvelopeMode">ScaleFromEnvelopeMode</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ScaleToEnvelopeMode">ScaleToEnvelopeMode</a>.<br><br>
<a name="GetEnvelopeStateChunk"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetEnvelopeStateChunk(TrackEnvelope* env, char* strNeedBig, int strNeedBig_sz, bool isundoOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetEnvelopeStateChunk(<i>TrackEnvelope</i> env, #str, <i>bool </i>isundo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>str = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetEnvelopeStateChunk(<i>TrackEnvelope</i> env, <i>string </i>str, <i>boolean</i> isundo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>TrackEnvelope</i> env, <i>String</i> strNeedBig, <i>Int</i> strNeedBig_sz, <i>Boolean</i> isundoOptional) = RPR_GetEnvelopeStateChunk(env, strNeedBig, strNeedBig_sz, isundoOptional)</code><br><br></div>
Gets the RPPXML state of an envelope, returns true if successful. Undo flag is a performance/caching hint.<br><br>
<a name="GetExePath"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetExePath()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetExePath(#retval)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetExePath()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_GetExePath()</code><br><br></div>
returns path of <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>.exe (not including EXE), i.e. C:\Program Files\<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight><br><br>
<a name="GetExtState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetExtState(const char* section, const char* key)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetExtState(#retval, "section", "key")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetExtState(<i>string</i> section, <i>string</i> key)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_GetExtState(<i>String</i> section, <i>String</i> key)</code><br><br></div>
Get the extended state value for a specific section and key. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetExtState">SetExtState</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteExtState">DeleteExtState</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#HasExtState">HasExtState</a>.<br><br>
<a name="GetFocusedFX"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetFocusedFX(int* tracknumberOut, int* itemnumberOut, int* fxnumberOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetFocusedFX(<i>int &amp;</i>tracknumber, <i>int &amp;</i>itemnumber, <i>int &amp;</i>fxnumber)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>number </i>tracknumber, <i>number </i>itemnumber, <i>number </i>fxnumber = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetFocusedFX()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>Int</i> tracknumberOut, <i>Int</i> itemnumberOut, <i>Int</i> fxnumberOut) = RPR_GetFocusedFX(tracknumberOut, itemnumberOut, fxnumberOut)</code><br><br></div>
Returns 1 if a track FX window has focus, 2 if an item FX window has focus, 0 if no FX window has focus. tracknumber==0 means the master track, 1 means track 1, etc. itemnumber and fxnumber are zero-based. If item FX, fxnumber will have the high word be the take index, the low word the FX index. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetLastTouchedFX">GetLastTouchedFX</a>.<br><br>
<a name="GetFreeDiskSpaceForRecordPath"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetFreeDiskSpaceForRecordPath(ReaProject* proj, int pathidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetFreeDiskSpaceForRecordPath(<i>ReaProject</i> proj, <i>int </i>pathidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetFreeDiskSpaceForRecordPath(<i>ReaProject</i> proj, <i>integer</i> pathidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetFreeDiskSpaceForRecordPath(<i>ReaProject</i> proj, <i>Int</i> pathidx)</code><br><br></div>
returns free disk space in megabytes, pathIdx 0 for normal, 1 for alternate.<br><br>
<a name="GetFXEnvelope"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>TrackEnvelope* GetFXEnvelope(MediaTrack* track, int fxindex, int parameterindex, bool create)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>TrackEnvelope</i>  GetFXEnvelope(<i>MediaTrack</i> track, <i>int </i>fxindex, <i>int </i>parameterindex, <i>bool </i>create)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>TrackEnvelope</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetFXEnvelope(<i>MediaTrack</i> track, <i>integer</i> fxindex, <i>integer</i> parameterindex, <i>boolean</i> create)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>TrackEnvelope</i>  RPR_GetFXEnvelope(<i>MediaTrack</i> track, <i>Int</i> fxindex, <i>Int</i> parameterindex, <i>Boolean</i> create)</code><br><br></div>
Returns the FX parameter envelope. If the envelope does not exist and create=true, the envelope will be created.<br><br>
<a name="GetGlobalAutomationOverride"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetGlobalAutomationOverride()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetGlobalAutomationOverride()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetGlobalAutomationOverride()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetGlobalAutomationOverride()</code><br><br></div>
return -1=no override, 0=trim/read, 1=read, 2=touch, 3=write, 4=latch, 5=bypass<br><br>
<a name="GetHZoomLevel"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetHZoomLevel()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetHZoomLevel()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetHZoomLevel()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetHZoomLevel()</code><br><br></div>
returns pixels/second<br><br>
<a name="GetInputChannelName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetInputChannelName(int channelIndex)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetInputChannelName(#retval, <i>int </i>channelIndex)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetInputChannelName(<i>integer</i> channelIndex)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_GetInputChannelName(<i>Int</i> channelIndex)</code><br><br></div>
<a name="GetInputOutputLatency"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetInputOutputLatency(int* inputlatencyOut, int* outputLatencyOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetInputOutputLatency(<i>int &amp;</i>inputlatency, <i>int &amp;</i>outputLatency)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number </i>inputlatency, <i>number </i>outputLatency = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetInputOutputLatency()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> inputlatencyOut, <i>Int</i> outputLatencyOut) = RPR_GetInputOutputLatency(inputlatencyOut, outputLatencyOut)</code><br><br></div>
Gets the audio device input/output latency in samples<br><br>
<a name="GetItemEditingTime2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetItemEditingTime2(PCM_source** which_itemOut, int* flagsOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetItemEditingTime2(<i>PCM_source &amp;</i>which_item, <i>int &amp;</i>flags)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i>, <i>PCM_source</i> which_item, <i>number </i>flags = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetItemEditingTime2()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> retval, <i>PCM_source*</i> which_itemOut, <i>Int</i> flagsOut) = RPR_GetItemEditingTime2(which_itemOut, flagsOut)</code><br><br></div>
returns time of relevant edit, set which_item to the pcm_source (if applicable), flags (if specified) will be set to 1 for edge resizing, 2 for fade change, 4 for item move<br><br>
<a name="GetItemProjectContext"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>ReaProject* GetItemProjectContext(MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>ReaProject</i>  GetItemProjectContext(<i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>ReaProject</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetItemProjectContext(<i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>ReaProject</i>  RPR_GetItemProjectContext(<i>MediaItem</i> item)</code><br><br></div>
<a name="GetItemStateChunk"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetItemStateChunk(MediaItem* item, char* strNeedBig, int strNeedBig_sz, bool isundoOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetItemStateChunk(<i>MediaItem</i> item, #str, <i>bool </i>isundo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>str = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetItemStateChunk(<i>MediaItem</i> item, <i>string </i>str, <i>boolean</i> isundo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem</i> item, <i>String</i> strNeedBig, <i>Int</i> strNeedBig_sz, <i>Boolean</i> isundoOptional) = RPR_GetItemStateChunk(item, strNeedBig, strNeedBig_sz, isundoOptional)</code><br><br></div>
Gets the RPPXML state of an item, returns true if successful. Undo flag is a performance/caching hint.<br><br>
<a name="GetLastColorThemeFile"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetLastColorThemeFile()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetLastColorThemeFile(#retval)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetLastColorThemeFile()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_GetLastColorThemeFile()</code><br><br></div>
<a name="GetLastMarkerAndCurRegion"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetLastMarkerAndCurRegion(ReaProject* proj, double time, int* markeridxOut, int* regionidxOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetLastMarkerAndCurRegion(<i>ReaProject</i> proj, time, <i>int &amp;</i>markeridx, <i>int &amp;</i>regionidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number </i>markeridx, <i>number </i>regionidx = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetLastMarkerAndCurRegion(<i>ReaProject</i> proj, <i>number</i> time)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>ReaProject</i> proj, <i>Float</i> time, <i>Int</i> markeridxOut, <i>Int</i> regionidxOut) = RPR_GetLastMarkerAndCurRegion(proj, time, markeridxOut, regionidxOut)</code><br><br></div>
Get the last project marker before time, and/or the project region that includes time. markeridx and regionidx are returned not necessarily as the displayed marker/region index, but as the index that can be passed to EnumProjectMarkers. Either or both of markeridx and regionidx may be NULL. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumProjectMarkers">EnumProjectMarkers</a>.<br><br>
<a name="GetLastTouchedFX"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetLastTouchedFX(int* tracknumberOut, int* fxnumberOut, int* paramnumberOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetLastTouchedFX(<i>int &amp;</i>tracknumber, <i>int &amp;</i>fxnumber, <i>int &amp;</i>paramnumber)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>tracknumber, <i>number </i>fxnumber, <i>number </i>paramnumber = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetLastTouchedFX()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>Int</i> tracknumberOut, <i>Int</i> fxnumberOut, <i>Int</i> paramnumberOut) = RPR_GetLastTouchedFX(tracknumberOut, fxnumberOut, paramnumberOut)</code><br><br></div>
Returns true if the last touched FX parameter is valid, false otherwise. tracknumber==0 means the master track, 1 means track 1, etc. fxnumber and paramnumber are zero-based. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetFocusedFX">GetFocusedFX</a>.<br><br>
<a name="GetLastTouchedTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* GetLastTouchedTrack()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  GetLastTouchedTrack()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetLastTouchedTrack()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_GetLastTouchedTrack()</code><br><br></div>
<a name="GetMainHwnd"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>HWND GetMainHwnd()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>HWND</i>  GetMainHwnd()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>HWND</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMainHwnd()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>HWND</i>  RPR_GetMainHwnd()</code><br><br></div>
<a name="GetMasterMuteSoloFlags"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetMasterMuteSoloFlags()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetMasterMuteSoloFlags()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMasterMuteSoloFlags()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetMasterMuteSoloFlags()</code><br><br></div>
&amp;1=master mute,&amp;2=master solo. This is deprecated as you can just query the master track as well.<br><br>
<a name="GetMasterTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* GetMasterTrack(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  GetMasterTrack(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMasterTrack(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_GetMasterTrack(<i>ReaProject</i> proj)</code><br><br></div>
<a name="GetMasterTrackVisibility"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetMasterTrackVisibility()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetMasterTrackVisibility()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMasterTrackVisibility()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetMasterTrackVisibility()</code><br><br></div>
returns &amp;1 if the master track is visible in the TCP, &amp;2 if visible in the mixer. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMasterTrackVisibility">SetMasterTrackVisibility</a>.<br><br>
<a name="GetMaxMidiInputs"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetMaxMidiInputs()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetMaxMidiInputs()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMaxMidiInputs()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetMaxMidiInputs()</code><br><br></div>
returns max dev for midi inputs/outputs<br><br>
<a name="GetMaxMidiOutputs"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetMaxMidiOutputs()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetMaxMidiOutputs()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMaxMidiOutputs()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetMaxMidiOutputs()</code><br><br></div>
<a name="GetMediaItem"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem* GetMediaItem(ReaProject* proj, int itemidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem</i>  GetMediaItem(<i>ReaProject</i> proj, <i>int </i>itemidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItem(<i>ReaProject</i> proj, <i>integer</i> itemidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem</i>  RPR_GetMediaItem(<i>ReaProject</i> proj, <i>Int</i> itemidx)</code><br><br></div>
get an item from a project by item count (zero-based) (proj=0 for active project)<br><br>
<a name="GetMediaItem_Track"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* GetMediaItem_Track(MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  GetMediaItem_Track(<i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItem_Track(<i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_GetMediaItem_Track(<i>MediaItem</i> item)</code><br><br></div>
Get parent track of media item<br><br>
<a name="GetMediaItemInfo_Value"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetMediaItemInfo_Value(MediaItem* item, const char* parmname)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetMediaItemInfo_Value(<i>MediaItem</i> item, "parmname")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItemInfo_Value(<i>MediaItem</i> item, <i>string</i> parmname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetMediaItemInfo_Value(<i>MediaItem</i> item, <i>String</i> parmname)</code><br><br></div>
Get media item numerical-value attributes.<br>
B_MUTE : bool * to muted state<br>
B_LOOPSRC : bool * to loop source<br>
B_ALLTAKESPLAY : bool * to all takes play<br>
B_UISEL : bool * to ui selected<br>
C_BEATATTACHMODE : char * to one char of beat attached mode, -1=def, 0=time, 1=allbeats, 2=beatsosonly<br>
C_LOCK : char * to one char of lock flags (&amp;1 is locked, currently)<br>
D_VOL : double * of item volume (volume bar)<br>
D_POSITION : double * of item position (seconds)<br>
D_LENGTH : double * of item length (seconds)<br>
D_SNAPOFFSET : double * of item snap offset (seconds)<br>
D_FADEINLEN : double * of item fade in length (manual, seconds)<br>
D_FADEOUTLEN : double * of item fade out length (manual, seconds)<br>
D_FADEINDIR : double * of item fade in curve [-1; 1]<br>
D_FADEOUTDIR : double * of item fade out curve [-1; 1]<br>
D_FADEINLEN_AUTO : double * of item autofade in length (seconds, -1 for no autofade set)<br>
D_FADEOUTLEN_AUTO : double * of item autofade out length (seconds, -1 for no autofade set)<br>
C_FADEINSHAPE : int * to fadein shape, 0=linear, ...<br>
C_FADEOUTSHAPE : int * to fadeout shape<br>
I_GROUPID : int * to group ID (0 = no group)<br>
I_LASTY : int * to last y position in track (readonly)<br>
I_LASTH : int * to last height in track (readonly)<br>
I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x100000 (i.e. ColorToNative(r,g,b)|0x100000). If you do not |0x100000, then it will not be used (though will store the color anyway).<br>
I_CURTAKE : int * to active take<br>
IP_ITEMNUMBER : int, item number within the track (read-only, returns the item number directly)<br>
F_FREEMODE_Y : float * to free mode y position (0..1)<br>
F_FREEMODE_H : float * to free mode height (0..1)<br>
P_TRACK : MediaTrack * (read only)<br>
<br><br>
<a name="GetMediaItemNumTakes"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetMediaItemNumTakes(MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetMediaItemNumTakes(<i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItemNumTakes(<i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetMediaItemNumTakes(<i>MediaItem</i> item)</code><br><br></div>
<a name="GetMediaItemTake"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem_Take* GetMediaItemTake(MediaItem* item, int tk)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem_Take</i>  GetMediaItemTake(<i>MediaItem</i> item, <i>int </i>tk)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem_Take</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItemTake(<i>MediaItem</i> item, <i>integer</i> tk)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem_Take</i>  RPR_GetMediaItemTake(<i>MediaItem</i> item, <i>Int</i> tk)</code><br><br></div>
<a name="GetMediaItemTake_Item"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem* GetMediaItemTake_Item(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem</i>  GetMediaItemTake_Item(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItemTake_Item(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem</i>  RPR_GetMediaItemTake_Item(<i>MediaItem_Take</i> take)</code><br><br></div>
Get parent item of media item take<br><br>
<a name="GetMediaItemTake_Peaks"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetMediaItemTake_Peaks(MediaItem_Take* take, double peakrate, double starttime, int numchannels, int numsamplesperchannel, int want_extra_type, double* buf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetMediaItemTake_Peaks(<i>MediaItem_Take</i> take, peakrate, starttime, <i>int </i>numchannels, <i>int </i>numsamplesperchannel, <i>int </i>want_extra_type, <i>buffer_ptr </i>buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItemTake_Peaks(<i>MediaItem_Take</i> take, <i>number</i> peakrate, <i>number</i> starttime, <i>integer</i> numchannels, <i>integer</i> numsamplesperchannel, <i>integer</i> want_extra_type, <i><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>MediaItem_Take</i> take, <i>Float</i> peakrate, <i>Float</i> starttime, <i>Int</i> numchannels, <i>Int</i> numsamplesperchannel, <i>Int</i> want_extra_type, <i>Float</i> buf) = RPR_GetMediaItemTake_Peaks(take, peakrate, starttime, numchannels, numsamplesperchannel, want_extra_type, buf)</code><br><br></div>
Gets block of peak samples to buf. Note that the peak samples are interleaved, but in two or three blocks (maximums, then minimums, then extra). Return value has 20 bits of returned sample count, then 4 bits of output_mode (0xf00000), then a bit to signify whether extra_type was available (0x1000000). extra_type can be 115 ('s') for spectral information, which will return peak samples as integers with the low 15 bits frequency, next 14 bits tonality.<br><br>
<a name="GetMediaItemTake_Source"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>PCM_source* GetMediaItemTake_Source(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>PCM_source</i>  GetMediaItemTake_Source(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>PCM_source</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItemTake_Source(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>PCM_source</i>  RPR_GetMediaItemTake_Source(<i>MediaItem_Take</i> take)</code><br><br></div>
Get media source of media item take<br><br>
<a name="GetMediaItemTake_Track"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* GetMediaItemTake_Track(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  GetMediaItemTake_Track(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItemTake_Track(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_GetMediaItemTake_Track(<i>MediaItem_Take</i> take)</code><br><br></div>
Get parent track of media item take<br><br>
<a name="GetMediaItemTakeByGUID"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem_Take* GetMediaItemTakeByGUID(ReaProject* project, const GUID* guid)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem_Take</i>  GetMediaItemTakeByGUID(<i>ReaProject</i> project, "guidGUID")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem_Take</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItemTakeByGUID(<i>ReaProject</i> project, <i>string</i> guidGUID)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem_Take</i>  RPR_GetMediaItemTakeByGUID(<i>ReaProject</i> project, <i>const GUID</i> guid)</code><br><br></div>
<a name="GetMediaItemTakeInfo_Value"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetMediaItemTakeInfo_Value(MediaItem_Take* take, const char* parmname)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetMediaItemTakeInfo_Value(<i>MediaItem_Take</i> take, "parmname")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItemTakeInfo_Value(<i>MediaItem_Take</i> take, <i>string</i> parmname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetMediaItemTakeInfo_Value(<i>MediaItem_Take</i> take, <i>String</i> parmname)</code><br><br></div>
Get media item take numerical-value attributes.<br>
D_STARTOFFS : double *, start offset in take of item<br>
D_VOL : double *, take volume<br>
D_PAN : double *, take pan<br>
D_PANLAW : double *, take pan law (-1.0=default, 0.5=-6dB, 1.0=+0dB, etc)<br>
D_PLAYRATE : double *, take playrate (1.0=normal, 2.0=doublespeed, etc)<br>
D_PITCH : double *, take pitch adjust (in semitones, 0.0=normal, +12 = one octave up, etc)<br>
B_PPITCH, bool *, preserve pitch when changing rate<br>
I_CHANMODE, int *, channel mode (0=normal, 1=revstereo, 2=downmix, 3=l, 4=r)<br>
I_PITCHMODE, int *, pitch shifter mode, -1=proj default, otherwise high word=shifter low word = parameter<br>
I_CUSTOMCOLOR : int *, custom color, OS dependent color|0x100000 (i.e. ColorToNative(r,g,b)|0x100000). If you do not |0x100000, then it will not be used (though will store the color anyway).<br>
IP_TAKENUMBER : int, take number within the item (read-only, returns the take number directly)<br>
P_TRACK : pointer to MediaTrack (read-only)<br>
P_ITEM : pointer to MediaItem (read-only)<br>
P_SOURCE : PCM_source *. Note that if setting this, you should first retrieve the old source, set the new, THEN delete the old.<br>
<br><br>
<a name="GetMediaItemTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* GetMediaItemTrack(MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  GetMediaItemTrack(<i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaItemTrack(<i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_GetMediaItemTrack(<i>MediaItem</i> item)</code><br><br></div>
<a name="GetMediaSourceFileName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetMediaSourceFileName(PCM_source* source, char* filenamebuf, int filenamebuf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetMediaSourceFileName(<i>PCM_source</i> source, #filenamebuf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>filenamebuf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaSourceFileName(<i>PCM_source</i> source, <i>string </i>filenamebuf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>PCM_source</i> source, <i>String</i> filenamebuf, <i>Int</i> filenamebuf_sz) = RPR_GetMediaSourceFileName(source, filenamebuf, filenamebuf_sz)</code><br><br></div>
Copies the media source filename to typebuf. Note that in-project MIDI media sources have no associated filename. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMediaSourceParent">GetMediaSourceParent</a>.<br><br>
<a name="GetMediaSourceLength"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetMediaSourceLength(PCM_source* source, bool* lengthIsQNOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetMediaSourceLength(<i>PCM_source</i> source, <i>bool &amp;</i>lengthIsQN)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> retval, <i>boolean </i>lengthIsQN = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaSourceLength(<i>PCM_source</i> source)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> retval, <i>PCM_source</i> source, <i>Boolean</i> lengthIsQNOut) = RPR_GetMediaSourceLength(source, lengthIsQNOut)</code><br><br></div>
Returns the length of the source media. If the media source is beat-based, the length will be in quarter notes, otherwise it will be in seconds.<br><br>
<a name="GetMediaSourceNumChannels"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetMediaSourceNumChannels(PCM_source* source)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetMediaSourceNumChannels(<i>PCM_source</i> source)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaSourceNumChannels(<i>PCM_source</i> source)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetMediaSourceNumChannels(<i>PCM_source</i> source)</code><br><br></div>
Returns the number of channels in the source media.<br><br>
<a name="GetMediaSourceParent"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>PCM_source* GetMediaSourceParent(PCM_source* src)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>PCM_source</i>  GetMediaSourceParent(<i>PCM_source</i> src)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>PCM_source</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaSourceParent(<i>PCM_source</i> src)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>PCM_source</i>  RPR_GetMediaSourceParent(<i>PCM_source</i> src)</code><br><br></div>
Returns the parent source, or NULL if src is the root source. This can be used to retrieve the parent properties of sections or reversed sources for example.<br><br>
<a name="GetMediaSourceSampleRate"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetMediaSourceSampleRate(PCM_source* source)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetMediaSourceSampleRate(<i>PCM_source</i> source)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaSourceSampleRate(<i>PCM_source</i> source)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetMediaSourceSampleRate(<i>PCM_source</i> source)</code><br><br></div>
Returns the sample rate. MIDI source media will return zero.<br><br>
<a name="GetMediaSourceType"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetMediaSourceType(PCM_source* source, char* typebuf, int typebuf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetMediaSourceType(<i>PCM_source</i> source, #typebuf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>typebuf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaSourceType(<i>PCM_source</i> source, <i>string </i>typebuf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>PCM_source</i> source, <i>String</i> typebuf, <i>Int</i> typebuf_sz) = RPR_GetMediaSourceType(source, typebuf, typebuf_sz)</code><br><br></div>
copies the media source type ("WAV", "MIDI", etc) to typebuf<br><br>
<a name="GetMediaTrackInfo_Value"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetMediaTrackInfo_Value(MediaTrack* tr, const char* parmname)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetMediaTrackInfo_Value(<i>MediaTrack</i> tr, "parmname")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMediaTrackInfo_Value(<i>MediaTrack</i> tr, <i>string</i> parmname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetMediaTrackInfo_Value(<i>MediaTrack</i> tr, <i>String</i> parmname)</code><br><br></div>
Get track numerical-value attributes.<br>
B_MUTE : bool * : mute flag<br>
B_PHASE : bool * : invert track phase<br>
IP_TRACKNUMBER : int : track number (returns zero if not found, -1 for master track) (read-only, returns the int directly)<br>
I_SOLO : int * : 0=not soloed, 1=solo, 2=soloed in place. also: 5=solo-safe solo, 6=solo-safe soloed in place<br>
I_FXEN : int * : 0=fx bypassed, nonzero = fx active<br>
I_RECARM : int * : 0=not record armed, 1=record armed<br>
I_RECINPUT : int * : record input. &lt;0 = no input, 0..n = mono hardware input, 512+n = rearoute input, 1024 set for stereo input pair. 4096 set for MIDI input, if set, then low 5 bits represent channel (0=all, 1-16=only chan), then next 6 bits represent physical input (63=all, 62=VKB)<br>
I_RECMODE : int * : record mode (0=input, 1=stereo out, 2=none, 3=stereo out w/latcomp, 4=midi output, 5=mono out, 6=mono out w/ lat comp, 7=midi overdub, 8=midi replace<br>
I_RECMON : int * : record monitor (0=off, 1=normal, 2=not when playing (tapestyle))<br>
I_RECMONITEMS : int * : monitor items while recording (0=off, 1=on)<br>
I_AUTOMODE : int * : track automation mode (0=trim/off, 1=read, 2=touch, 3=write, 4=latch)<br>
I_NCHAN : int * : number of track channels, must be 2-64, even<br>
I_SELECTED : int * : track selected? 0 or 1<br>
I_WNDH : int * : current TCP window height (Read-only)<br>
I_FOLDERDEPTH : int * : folder depth change (0=normal, 1=track is a folder parent, -1=track is the last in the innermost folder, -2=track is the last in the innermost and next-innermost folders, etc<br>
I_FOLDERCOMPACT : int * : folder compacting (only valid on folders), 0=normal, 1=small, 2=tiny children<br>
I_MIDIHWOUT : int * : track midi hardware output index (&lt;0 for disabled, low 5 bits are which channels (0=all, 1-16), next 5 bits are output device index (0-31))<br>
I_PERFFLAGS : int * : track perf flags (&amp;1=no media buffering, &amp;2=no anticipative FX)<br>
I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x100000 (i.e. ColorToNative(r,g,b)|0x100000). If you do not |0x100000, then it will not be used (though will store the color anyway).<br>
I_HEIGHTOVERRIDE : int * : custom height override for TCP window. 0 for none, otherwise size in pixels<br>
B_HEIGHTLOCK : bool * : track height lock (must set I_HEIGHTOVERRIDE before locking)<br>
D_VOL : double * : trim volume of track (0 (-inf)..1 (+0dB) .. 2 (+6dB) etc ..)<br>
D_PAN : double * : trim pan of track (-1..1)<br>
D_WIDTH : double * : width of track (-1..1)<br>
D_DUALPANL : double * : dualpan position 1 (-1..1), only if I_PANMODE==6<br>
D_DUALPANR : double * : dualpan position 2 (-1..1), only if I_PANMODE==6<br>
I_PANMODE : int * : pan mode (0 = classic 3.x, 3=new balance, 5=stereo pan, 6 = dual pan)<br>
D_PANLAW : double * : pan law of track. &lt;0 for project default, 1.0 for +0dB, etc<br>
P_ENV : read only, returns TrackEnvelope *, setNewValue=&lt;VOLENV, &lt;PANENV, etc<br>
B_SHOWINMIXER : bool * : show track panel in mixer -- do not use on master<br>
B_SHOWINTCP : bool * : show track panel in tcp -- do not use on master<br>
B_MAINSEND : bool * : track sends audio to parent<br>
C_MAINSEND_OFFS : char * : track send to parent channel offset<br>
B_FREEMODE : bool * : track free-mode enabled (requires UpdateTimeline() after changing etc)<br>
C_BEATATTACHMODE : char * : char * to one char of beat attached mode, -1=def, 0=time, 1=allbeats, 2=beatsposonly<br>
F_MCP_FXSEND_SCALE : float * : scale of fx+send area in MCP (0.0=smallest allowed, 1=max allowed)<br>
F_MCP_SENDRGN_SCALE : float * : scale of send area as proportion of the fx+send total area (0=min allow, 1=max)<br>
P_PARTRACK : MediaTrack * : parent track (read-only)<br>
P_PROJECT : ReaProject * : parent project (read-only)<br>
<br><br>
<a name="GetMIDIInputName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetMIDIInputName(int dev, char* nameout, int nameout_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetMIDIInputName(<i>int </i>dev, #nameout)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>nameout = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMIDIInputName(<i>integer</i> dev, <i>string </i>nameout)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>Int</i> dev, <i>String</i> nameout, <i>Int</i> nameout_sz) = RPR_GetMIDIInputName(dev, nameout, nameout_sz)</code><br><br></div>
returns true if device present<br><br>
<a name="GetMIDIOutputName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetMIDIOutputName(int dev, char* nameout, int nameout_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetMIDIOutputName(<i>int </i>dev, #nameout)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>nameout = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMIDIOutputName(<i>integer</i> dev, <i>string </i>nameout)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>Int</i> dev, <i>String</i> nameout, <i>Int</i> nameout_sz) = RPR_GetMIDIOutputName(dev, nameout, nameout_sz)</code><br><br></div>
returns true if device present<br><br>
<a name="GetMixerScroll"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* GetMixerScroll()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  GetMixerScroll()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMixerScroll()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_GetMixerScroll()</code><br><br></div>
Get the leftmost track visible in the mixer<br><br>
<a name="GetMouseModifier"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetMouseModifier(const char* context, int modifier_flag, char* action, int action_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetMouseModifier("context", <i>int </i>modifier_flag, #action)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>action = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMouseModifier(<i>string</i> context, <i>integer</i> modifier_flag, <i>string </i>action)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> context, <i>Int</i> modifier_flag, <i>String</i> action, <i>Int</i> action_sz) = RPR_GetMouseModifier(context, modifier_flag, action, action_sz)</code><br><br></div>
Get the current mouse modifier assignment for a specific modifier key assignment, in a specific context.<br>
action will be filled in with the command ID number for a built-in mouse modifier<br>
or built-in <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> command ID, or the custom action ID string.<br>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetMouseModifier">SetMouseModifier</a> for more information.<br>
<br><br>
<a name="GetMousePosition"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetMousePosition(int* xOut, int* yOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetMousePosition(<i>int &amp;</i>x, <i>int &amp;</i>y)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number </i>x, <i>number </i>y = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetMousePosition()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> xOut, <i>Int</i> yOut) = RPR_GetMousePosition(xOut, yOut)</code><br><br></div>
get mouse position in screen coordinates<br><br>
<a name="GetNumAudioInputs"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetNumAudioInputs()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetNumAudioInputs()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetNumAudioInputs()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetNumAudioInputs()</code><br><br></div>
Return number of normal audio hardware inputs available<br><br>
<a name="GetNumAudioOutputs"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetNumAudioOutputs()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetNumAudioOutputs()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetNumAudioOutputs()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetNumAudioOutputs()</code><br><br></div>
Return number of normal audio hardware outputs available<br><br>
<a name="GetNumMIDIInputs"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetNumMIDIInputs()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetNumMIDIInputs()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetNumMIDIInputs()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetNumMIDIInputs()</code><br><br></div>
returns max number of real midi hardware inputs<br><br>
<a name="GetNumMIDIOutputs"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetNumMIDIOutputs()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetNumMIDIOutputs()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetNumMIDIOutputs()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetNumMIDIOutputs()</code><br><br></div>
returns max number of real midi hardware outputs<br><br>
<a name="GetNumTracks"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetNumTracks()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetNumTracks()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetNumTracks()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetNumTracks()</code><br><br></div>
<a name="GetOS"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetOS()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetOS(#retval)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetOS()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_GetOS()</code><br><br></div>
Returns "Win32", "Win64", "OSX32", "OSX64", or "Other".<br><br>
<a name="GetOutputChannelName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetOutputChannelName(int channelIndex)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetOutputChannelName(#retval, <i>int </i>channelIndex)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetOutputChannelName(<i>integer</i> channelIndex)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_GetOutputChannelName(<i>Int</i> channelIndex)</code><br><br></div>
<a name="GetOutputLatency"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetOutputLatency()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetOutputLatency()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetOutputLatency()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetOutputLatency()</code><br><br></div>
returns output latency in seconds<br><br>
<a name="GetParentTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* GetParentTrack(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  GetParentTrack(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetParentTrack(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_GetParentTrack(<i>MediaTrack</i> track)</code><br><br></div>
<a name="GetPeakFileName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetPeakFileName(const char* fn, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetPeakFileName("fn", #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetPeakFileName(<i>string</i> fn, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> fn, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_GetPeakFileName(fn, buf, buf_sz)</code><br><br></div>
get the peak file name for a given file (can be either filename.reapeaks,or a hashed filename in another path)<br><br>
<a name="GetPeakFileNameEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetPeakFileNameEx(const char* fn, char* buf, int buf_sz, bool forWrite)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetPeakFileNameEx("fn", #buf, <i>bool </i>forWrite)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetPeakFileNameEx(<i>string</i> fn, <i>string </i>buf, <i>boolean</i> forWrite)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> fn, <i>String</i> buf, <i>Int</i> buf_sz, <i>Boolean</i> forWrite) = RPR_GetPeakFileNameEx(fn, buf, buf_sz, forWrite)</code><br><br></div>
get the peak file name for a given file (can be either filename.reapeaks,or a hashed filename in another path)<br><br>
<a name="GetPeakFileNameEx2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetPeakFileNameEx2(const char* fn, char* buf, int buf_sz, bool forWrite, const char* peaksfileextension)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetPeakFileNameEx2("fn", #buf, <i>bool </i>forWrite, "peaksfileextension")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetPeakFileNameEx2(<i>string</i> fn, <i>string </i>buf, <i>boolean</i> forWrite, <i>string</i> peaksfileextension)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> fn, <i>String</i> buf, <i>Int</i> buf_sz, <i>Boolean</i> forWrite, <i>String</i> peaksfileextension) = RPR_GetPeakFileNameEx2(fn, buf, buf_sz, forWrite, peaksfileextension)</code><br><br></div>
Like GetPeakFileNameEx, but you can specify peaksfileextension such as ".reapeaks"<br><br>
<a name="GetPlayPosition"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetPlayPosition()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetPlayPosition()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetPlayPosition()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetPlayPosition()</code><br><br></div>
returns latency-compensated actual-what-you-hear position<br><br>
<a name="GetPlayPosition2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetPlayPosition2()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetPlayPosition2()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetPlayPosition2()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetPlayPosition2()</code><br><br></div>
returns position of next audio block being processed<br><br>
<a name="GetPlayPosition2Ex"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetPlayPosition2Ex(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetPlayPosition2Ex(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetPlayPosition2Ex(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetPlayPosition2Ex(<i>ReaProject</i> proj)</code><br><br></div>
returns position of next audio block being processed<br><br>
<a name="GetPlayPositionEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetPlayPositionEx(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetPlayPositionEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetPlayPositionEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetPlayPositionEx(<i>ReaProject</i> proj)</code><br><br></div>
returns latency-compensated actual-what-you-hear position<br><br>
<a name="GetPlayState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetPlayState()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetPlayState()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetPlayState()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetPlayState()</code><br><br></div>
&amp;1=playing,&amp;2=pause,&amp;=4 is recording<br><br>
<a name="GetPlayStateEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetPlayStateEx(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetPlayStateEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetPlayStateEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetPlayStateEx(<i>ReaProject</i> proj)</code><br><br></div>
&amp;1=playing,&amp;2=pause,&amp;=4 is recording<br><br>
<a name="GetProjectLength"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetProjectLength(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetProjectLength(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetProjectLength(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetProjectLength(<i>ReaProject</i> proj)</code><br><br></div>
returns length of project (maximum of end of media item, markers, end of regions, tempo map<br><br>
<a name="GetProjectName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetProjectName(ReaProject* proj, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetProjectName(<i>ReaProject</i> proj, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetProjectName(<i>ReaProject</i> proj, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>ReaProject</i> proj, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_GetProjectName(proj, buf, buf_sz)</code><br><br></div>
<a name="GetProjectPath"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetProjectPath(char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetProjectPath(#buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetProjectPath(<i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> buf, <i>Int</i> buf_sz) = RPR_GetProjectPath(buf, buf_sz)</code><br><br></div>
<a name="GetProjectPathEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetProjectPathEx(ReaProject* proj, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetProjectPathEx(<i>ReaProject</i> proj, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetProjectPathEx(<i>ReaProject</i> proj, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>ReaProject</i> proj, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_GetProjectPathEx(proj, buf, buf_sz)</code><br><br></div>
<a name="GetProjectStateChangeCount"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetProjectStateChangeCount(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetProjectStateChangeCount(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetProjectStateChangeCount(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetProjectStateChangeCount(<i>ReaProject</i> proj)</code><br><br></div>
returns an integer that changes when the project state changes<br><br>
<a name="GetProjectTimeOffset"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetProjectTimeOffset(ReaProject* proj, bool rndframe)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetProjectTimeOffset(<i>ReaProject</i> proj, <i>bool </i>rndframe)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetProjectTimeOffset(<i>ReaProject</i> proj, <i>boolean</i> rndframe)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetProjectTimeOffset(<i>ReaProject</i> proj, <i>Boolean</i> rndframe)</code><br><br></div>
Gets project time offset in seconds (project settings - project start time). If rndframe is true, the offset is rounded to a multiple of the project frame size.<br><br>
<a name="GetProjectTimeSignature"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetProjectTimeSignature(double* bpmOut, double* bpiOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetProjectTimeSignature(<i>&amp;</i>bpm, <i>&amp;</i>bpi)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number </i>bpm, <i>number </i>bpi = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetProjectTimeSignature()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> bpmOut, <i>Float</i> bpiOut) = RPR_GetProjectTimeSignature(bpmOut, bpiOut)</code><br><br></div>
deprecated<br><br>
<a name="GetProjectTimeSignature2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetProjectTimeSignature2(ReaProject* proj, double* bpmOut, double* bpiOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetProjectTimeSignature2(<i>ReaProject</i> proj, <i>&amp;</i>bpm, <i>&amp;</i>bpi)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number </i>bpm, <i>number </i>bpi = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetProjectTimeSignature2(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>ReaProject</i> proj, <i>Float</i> bpmOut, <i>Float</i> bpiOut) = RPR_GetProjectTimeSignature2(proj, bpmOut, bpiOut)</code><br><br></div>
Gets basic time signature (beats per minute, numerator of time signature in bpi)<br>
this does not reflect tempo envelopes but is purely what is set in the project settings.<br><br>
<a name="GetProjExtState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetProjExtState(ReaProject* proj, const char* extname, const char* key, char* valOutNeedBig, int valOutNeedBig_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetProjExtState(<i>ReaProject</i> proj, "extname", "key", #val)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>string </i>val = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetProjExtState(<i>ReaProject</i> proj, <i>string</i> extname, <i>string</i> key)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>ReaProject</i> proj, <i>String</i> extname, <i>String</i> key, <i>String</i> valOutNeedBig, <i>Int</i> valOutNeedBig_sz) = RPR_GetProjExtState(proj, extname, key, valOutNeedBig, valOutNeedBig_sz)</code><br><br></div>
Get the value previously associated with this extname and key, the last time the project was saved. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjExtState">SetProjExtState</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumProjExtState">EnumProjExtState</a>.<br><br>
<a name="GetResourcePath"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetResourcePath()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetResourcePath(#retval)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetResourcePath()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_GetResourcePath()</code><br><br></div>
returns path where ini files are stored, other things are in subdirectories.<br><br>
<a name="GetSelectedEnvelope"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>TrackEnvelope* GetSelectedEnvelope(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>TrackEnvelope</i>  GetSelectedEnvelope(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>TrackEnvelope</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSelectedEnvelope(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>TrackEnvelope</i>  RPR_GetSelectedEnvelope(<i>ReaProject</i> proj)</code><br><br></div>
get the currently selected envelope, returns 0 if no envelope is selected<br><br>
<a name="GetSelectedMediaItem"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem* GetSelectedMediaItem(ReaProject* proj, int selitem)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem</i>  GetSelectedMediaItem(<i>ReaProject</i> proj, <i>int </i>selitem)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSelectedMediaItem(<i>ReaProject</i> proj, <i>integer</i> selitem)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem</i>  RPR_GetSelectedMediaItem(<i>ReaProject</i> proj, <i>Int</i> selitem)</code><br><br></div>
get a selected item by selected item count (zero-based) (proj=0 for active project)<br><br>
<a name="GetSelectedTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* GetSelectedTrack(ReaProject* proj, int seltrackidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  GetSelectedTrack(<i>ReaProject</i> proj, <i>int </i>seltrackidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSelectedTrack(<i>ReaProject</i> proj, <i>integer</i> seltrackidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_GetSelectedTrack(<i>ReaProject</i> proj, <i>Int</i> seltrackidx)</code><br><br></div>
Get a selected track from a project (proj=0 for active project) by selected track count (zero-based). This function ignores the master track, see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSelectedTrack2">GetSelectedTrack2</a>.<br><br>
<a name="GetSelectedTrack2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* GetSelectedTrack2(ReaProject* proj, int seltrackidx, bool wantmaster)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  GetSelectedTrack2(<i>ReaProject</i> proj, <i>int </i>seltrackidx, <i>bool </i>wantmaster)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSelectedTrack2(<i>ReaProject</i> proj, <i>integer</i> seltrackidx, <i>boolean</i> wantmaster)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_GetSelectedTrack2(<i>ReaProject</i> proj, <i>Int</i> seltrackidx, <i>Boolean</i> wantmaster)</code><br><br></div>
Get a selected track from a project (proj=0 for active project) by selected track count (zero-based).<br><br>
<a name="GetSelectedTrackEnvelope"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>TrackEnvelope* GetSelectedTrackEnvelope(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>TrackEnvelope</i>  GetSelectedTrackEnvelope(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>TrackEnvelope</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSelectedTrackEnvelope(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>TrackEnvelope</i>  RPR_GetSelectedTrackEnvelope(<i>ReaProject</i> proj)</code><br><br></div>
get the currently selected track envelope, returns 0 if no envelope is selected<br><br>
<a name="GetSet_ArrangeView2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetSet_ArrangeView2(ReaProject* proj, bool isSet, int screen_x_start, int screen_x_end, double* start_timeOut, double* end_timeOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetSet_ArrangeView2(<i>ReaProject</i> proj, <i>bool </i>isSet, <i>int </i>screen_x_start, <i>int </i>screen_x_end, <i>&amp;</i>start_time, <i>&amp;</i>end_time)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number </i>start_time, <i>number </i>end_time = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSet_ArrangeView2(<i>ReaProject</i> proj, <i>boolean</i> isSet, <i>integer</i> screen_x_start, <i>integer</i> screen_x_end)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>ReaProject</i> proj, <i>Boolean</i> isSet, <i>Int</i> screen_x_start, <i>Int</i> screen_x_end, <i>Float</i> start_timeOut, <i>Float</i> end_timeOut) = RPR_GetSet_ArrangeView2(proj, isSet, screen_x_start, screen_x_end, start_timeOut, end_timeOut)</code><br><br></div>
Gets or sets the arrange view start/end time for screen coordinates. use screen_x_start=screen_x_end=0 to use the full arrange view's start/end time<br><br>
<a name="GetSet_LoopTimeRange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetSet_LoopTimeRange(bool isSet, bool isLoop, double* startOut, double* endOut, bool allowautoseek)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetSet_LoopTimeRange(<i>bool </i>isSet, <i>bool </i>isLoop, <i>&amp;</i>start, <i>&amp;</i>end, <i>bool </i>allowautoseek)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number </i>start, <i>number </i>end = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSet_LoopTimeRange(<i>boolean</i> isSet, <i>boolean</i> isLoop, <i>number </i>start, <i>number </i>end, <i>boolean</i> allowautoseek)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> isSet, <i>Boolean</i> isLoop, <i>Float</i> startOut, <i>Float</i> endOut, <i>Boolean</i> allowautoseek) = RPR_GetSet_LoopTimeRange(isSet, isLoop, startOut, endOut, allowautoseek)</code><br><br></div>
<a name="GetSet_LoopTimeRange2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetSet_LoopTimeRange2(ReaProject* proj, bool isSet, bool isLoop, double* startOut, double* endOut, bool allowautoseek)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetSet_LoopTimeRange2(<i>ReaProject</i> proj, <i>bool </i>isSet, <i>bool </i>isLoop, <i>&amp;</i>start, <i>&amp;</i>end, <i>bool </i>allowautoseek)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number </i>start, <i>number </i>end = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSet_LoopTimeRange2(<i>ReaProject</i> proj, <i>boolean</i> isSet, <i>boolean</i> isLoop, <i>number </i>start, <i>number </i>end, <i>boolean</i> allowautoseek)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>ReaProject</i> proj, <i>Boolean</i> isSet, <i>Boolean</i> isLoop, <i>Float</i> startOut, <i>Float</i> endOut, <i>Boolean</i> allowautoseek) = RPR_GetSet_LoopTimeRange2(proj, isSet, isLoop, startOut, endOut, allowautoseek)</code><br><br></div>
<a name="GetSetAutomationItemInfo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetSetAutomationItemInfo(TrackEnvelope* env, int autoitem_idx, const char* desc, double value, bool is_set)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetSetAutomationItemInfo(<i>TrackEnvelope</i> env, <i>int </i>autoitem_idx, "desc", value, <i>bool </i>is_set)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetAutomationItemInfo(<i>TrackEnvelope</i> env, <i>integer</i> autoitem_idx, <i>string</i> desc, <i>number</i> value, <i>boolean</i> is_set)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetSetAutomationItemInfo(<i>TrackEnvelope</i> env, <i>Int</i> autoitem_idx, <i>String</i> desc, <i>Float</i> value, <i>Boolean</i> is_set)</code><br><br></div>
Get or set automation item information. autoitem_idx==0 for the first automation item on an envelope, 1 for the second item, etc. desc can be any of the following:<br>
D_POOL_ID: double *, automation item pool ID (as an integer); edits are propagated to all other automation items that share a pool ID<br>
D_POSITION: double *, automation item timeline position in seconds<br>
D_LENGTH: double *, automation item length in seconds<br>
D_STARTOFFS: double *, automation item start offset in seconds<br>
D_PLAYRATE: double *, automation item playback rate<br>
D_BASELINE: double *, automation item baseline value in the range [0,1]<br>
D_AMPLITUDE: double *, automation item amplitude in the range [-1,1]<br>
D_LOOPSRC: double *, nonzero if the automation item contents are looped<br>
D_UISEL: double *, nonzero if the automation item is selected in the arrange view<br>
<br><br>
<a name="GetSetEnvelopeState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetSetEnvelopeState(TrackEnvelope* env, char* str, int str_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetSetEnvelopeState(<i>TrackEnvelope</i> env, #str)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>str = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetEnvelopeState(<i>TrackEnvelope</i> env, <i>string </i>str)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>TrackEnvelope</i> env, <i>String</i> str, <i>Int</i> str_sz) = RPR_GetSetEnvelopeState(env, str, str_sz)</code><br><br></div>
deprecated -- see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopeStateChunk">SetEnvelopeStateChunk</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeStateChunk">GetEnvelopeStateChunk</a><br><br>
<a name="GetSetEnvelopeState2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetSetEnvelopeState2(TrackEnvelope* env, char* str, int str_sz, bool isundo)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetSetEnvelopeState2(<i>TrackEnvelope</i> env, #str, <i>bool </i>isundo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>str = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetEnvelopeState2(<i>TrackEnvelope</i> env, <i>string </i>str, <i>boolean</i> isundo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>TrackEnvelope</i> env, <i>String</i> str, <i>Int</i> str_sz, <i>Boolean</i> isundo) = RPR_GetSetEnvelopeState2(env, str, str_sz, isundo)</code><br><br></div>
deprecated -- see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopeStateChunk">SetEnvelopeStateChunk</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeStateChunk">GetEnvelopeStateChunk</a><br><br>
<a name="GetSetItemState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetSetItemState(MediaItem* item, char* str, int str_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetSetItemState(<i>MediaItem</i> item, #str)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>str = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetItemState(<i>MediaItem</i> item, <i>string </i>str)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem</i> item, <i>String</i> str, <i>Int</i> str_sz) = RPR_GetSetItemState(item, str, str_sz)</code><br><br></div>
deprecated -- see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetItemStateChunk">SetItemStateChunk</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetItemStateChunk">GetItemStateChunk</a><br><br>
<a name="GetSetItemState2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetSetItemState2(MediaItem* item, char* str, int str_sz, bool isundo)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetSetItemState2(<i>MediaItem</i> item, #str, <i>bool </i>isundo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>str = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetItemState2(<i>MediaItem</i> item, <i>string </i>str, <i>boolean</i> isundo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem</i> item, <i>String</i> str, <i>Int</i> str_sz, <i>Boolean</i> isundo) = RPR_GetSetItemState2(item, str, str_sz, isundo)</code><br><br></div>
deprecated -- see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetItemStateChunk">SetItemStateChunk</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetItemStateChunk">GetItemStateChunk</a><br><br>
<a name="GetSetMediaItemInfo_String"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetSetMediaItemInfo_String(MediaItem* item, const char* parmname, char* stringNeedBig, bool setNewValue)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetSetMediaItemInfo_String(<i>MediaItem</i> item, "parmname", #stringNeedBig, <i>bool </i>setNewValue)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>stringNeedBig = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetMediaItemInfo_String(<i>MediaItem</i> item, <i>string</i> parmname, <i>string </i>stringNeedBig, <i>boolean</i> setNewValue)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem</i> item, <i>String</i> parmname, <i>String</i> stringNeedBig, <i>Boolean</i> setNewValue) = RPR_GetSetMediaItemInfo_String(item, parmname, stringNeedBig, setNewValue)</code><br><br></div>
Gets/sets an item attribute string:<br>
P_NOTES : char * : item note text (do not write to returned pointer, use setNewValue to update)<br>
GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.<br>
<br><br>
<a name="GetSetMediaItemTakeInfo_String"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetSetMediaItemTakeInfo_String(MediaItem_Take* tk, const char* parmname, char* stringNeedBig, bool setNewValue)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetSetMediaItemTakeInfo_String(<i>MediaItem_Take</i> tk, "parmname", #stringNeedBig, <i>bool </i>setNewValue)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>stringNeedBig = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetMediaItemTakeInfo_String(<i>MediaItem_Take</i> tk, <i>string</i> parmname, <i>string </i>stringNeedBig, <i>boolean</i> setNewValue)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> tk, <i>String</i> parmname, <i>String</i> stringNeedBig, <i>Boolean</i> setNewValue) = RPR_GetSetMediaItemTakeInfo_String(tk, parmname, stringNeedBig, setNewValue)</code><br><br></div>
Gets/sets a take attribute string:<br>
P_NAME : char * to take name<br>
GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.<br>
<br><br>
<a name="GetSetMediaTrackInfo_String"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetSetMediaTrackInfo_String(MediaTrack* tr, const char* parmname, char* stringNeedBig, bool setNewValue)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetSetMediaTrackInfo_String(<i>MediaTrack</i> tr, "parmname", #stringNeedBig, <i>bool </i>setNewValue)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>stringNeedBig = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetMediaTrackInfo_String(<i>MediaTrack</i> tr, <i>string</i> parmname, <i>string </i>stringNeedBig, <i>boolean</i> setNewValue)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> tr, <i>String</i> parmname, <i>String</i> stringNeedBig, <i>Boolean</i> setNewValue) = RPR_GetSetMediaTrackInfo_String(tr, parmname, stringNeedBig, setNewValue)</code><br><br></div>
Get or set track string attributes.<br>
P_NAME : char * : track name (on master returns NULL)<br>
P_ICON : const char * : track icon (full filename, or relative to resource_path/data/track_icons)<br>
P_MCP_LAYOUT : const char * : layout name<br>
P_TCP_LAYOUT : const char * : layout name<br>
GUID : GUID * : 16-byte GUID, can query or update. If using a _String() function, GUID is a string {xyz-...}.<br>
<br><br>
<a name="GetSetProjectAuthor"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetSetProjectAuthor(ReaProject* proj, bool set, char* author, int author_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetSetProjectAuthor(<i>ReaProject</i> proj, <i>bool </i>set, #author)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>author = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetProjectAuthor(<i>ReaProject</i> proj, <i>boolean</i> set, <i>string </i>author)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>ReaProject</i> proj, <i>Boolean</i> set, <i>String</i> author, <i>Int</i> author_sz) = RPR_GetSetProjectAuthor(proj, set, author, author_sz)</code><br><br></div>
gets or sets project author, author_sz is ignored when setting<br><br>
<a name="GetSetProjectGrid"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetSetProjectGrid(ReaProject* project, bool set, double* divisionInOutOptional, int* swingmodeInOutOptional, double* swingamtInOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetSetProjectGrid(<i>ReaProject</i> project, <i>bool </i>set, <i>optional &amp;</i>divisionIn, <i>optional int &amp;</i>swingmodeIn, <i>optional &amp;</i>swingamtIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>optional number </i>divisionIn, <i>optional number </i>swingmodeIn, <i>optional number </i>swingamtIn = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetProjectGrid(<i>ReaProject</i> project, <i>boolean</i> set)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>ReaProject</i> project, <i>Boolean</i> set, <i>Float</i> divisionInOutOptional, <i>Int</i> swingmodeInOutOptional, <i>Float</i> swingamtInOutOptional) = RPR_GetSetProjectGrid(project, set, divisionInOutOptional, swingmodeInOutOptional, swingamtInOutOptional)</code><br><br></div>
Get or set the arrange view grid division. 0.25=quarter note, 1.0/3.0=half note triplet, etc. swingmode can be 1 for swing enabled, swingamt is -1..1. Returns grid configuration flags<br><br>
<a name="GetSetProjectNotes"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetSetProjectNotes(ReaProject* proj, bool set, char* notesNeedBig, int notesNeedBig_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetSetProjectNotes(<i>ReaProject</i> proj, <i>bool </i>set, #notes)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>notes = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetProjectNotes(<i>ReaProject</i> proj, <i>boolean</i> set, <i>string </i>notes)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>ReaProject</i> proj, <i>Boolean</i> set, <i>String</i> notesNeedBig, <i>Int</i> notesNeedBig_sz) = RPR_GetSetProjectNotes(proj, set, notesNeedBig, notesNeedBig_sz)</code><br><br></div>
gets or sets project notes, notesNeedBig_sz is ignored when setting<br><br>
<a name="GetSetRepeat"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetSetRepeat(int val)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetSetRepeat(<i>int </i>val)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetRepeat(<i>integer</i> val)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetSetRepeat(<i>Int</i> val)</code><br><br></div>
-1 == query,0=clear,1=set,&gt;1=toggle . returns new value<br><br>
<a name="GetSetRepeatEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetSetRepeatEx(ReaProject* proj, int val)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetSetRepeatEx(<i>ReaProject</i> proj, <i>int </i>val)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetRepeatEx(<i>ReaProject</i> proj, <i>integer</i> val)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetSetRepeatEx(<i>ReaProject</i> proj, <i>Int</i> val)</code><br><br></div>
-1 == query,0=clear,1=set,&gt;1=toggle . returns new value<br><br>
<a name="GetSetTrackGroupMembership"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>unsigned int GetSetTrackGroupMembership(MediaTrack* tr, const char* groupname, unsigned int setmask, unsigned int setvalue)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>uint </i> GetSetTrackGroupMembership(<i>MediaTrack</i> tr, "groupname", <i>uint </i>setmask, <i>uint </i>setvalue)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetTrackGroupMembership(<i>MediaTrack</i> tr, <i>string</i> groupname, <i>integer</i> setmask, <i>integer</i> setvalue)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Unknown</i>  RPR_GetSetTrackGroupMembership(<i>MediaTrack</i> tr, <i>String</i> groupname, <i>Unknown</i> setmask, <i>Unknown</i> setvalue)</code><br><br></div>
Gets or modifies the group membership for a track. Returns group state prior to call (each bit represents one of the 32 group numbers). if setmask has bits set, those bits in setvalue will be applied to group. Group can be one of:<br>
VOLUME_MASTER<br>
VOLUME_SLAVE<br>
VOLUME_VCA_MASTER<br>
VOLUME_VCA_SLAVE<br>
PAN_MASTER<br>
PAN_SLAVE<br>
WIDTH_MASTER<br>
WIDTH_SLAVE<br>
MUTE_MASTER<br>
MUTE_SLAVE<br>
SOLO_MASTER<br>
SOLO_SLAVE<br>
RECARM_MASTER<br>
RECARM_SLAVE<br>
POLARITY_MASTER<br>
POLARITY_SLAVE<br>
AUTOMODE_MASTER<br>
AUTOMODE_SLAVE<br>
VOLUME_REVERSE<br>
PAN_REVERSE<br>
WIDTH_REVERSE<br>
NO_MASTER_WHEN_SLAVE<br>
VOLUME_VCA_SLAVE_ISPREFX<br>
<br><br>
<a name="GetSetTrackGroupMembershipHigh"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>unsigned int GetSetTrackGroupMembershipHigh(MediaTrack* tr, const char* groupname, unsigned int setmask, unsigned int setvalue)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>uint </i> GetSetTrackGroupMembershipHigh(<i>MediaTrack</i> tr, "groupname", <i>uint </i>setmask, <i>uint </i>setvalue)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetTrackGroupMembershipHigh(<i>MediaTrack</i> tr, <i>string</i> groupname, <i>integer</i> setmask, <i>integer</i> setvalue)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Unknown</i>  RPR_GetSetTrackGroupMembershipHigh(<i>MediaTrack</i> tr, <i>String</i> groupname, <i>Unknown</i> setmask, <i>Unknown</i> setvalue)</code><br><br></div>
Gets or modifies the group membership for a track. Returns group state prior to call (each bit represents one of the high 32 group numbers). if setmask has bits set, those bits in setvalue will be applied to group. Group can be one of:<br>
VOLUME_MASTER<br>
VOLUME_SLAVE<br>
VOLUME_VCA_MASTER<br>
VOLUME_VCA_SLAVE<br>
PAN_MASTER<br>
PAN_SLAVE<br>
WIDTH_MASTER<br>
WIDTH_SLAVE<br>
MUTE_MASTER<br>
MUTE_SLAVE<br>
SOLO_MASTER<br>
SOLO_SLAVE<br>
RECARM_MASTER<br>
RECARM_SLAVE<br>
POLARITY_MASTER<br>
POLARITY_SLAVE<br>
AUTOMODE_MASTER<br>
AUTOMODE_SLAVE<br>
VOLUME_REVERSE<br>
PAN_REVERSE<br>
WIDTH_REVERSE<br>
NO_MASTER_WHEN_SLAVE<br>
VOLUME_VCA_SLAVE_ISPREFX<br>
<br><br>
<a name="GetSetTrackState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetSetTrackState(MediaTrack* track, char* str, int str_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetSetTrackState(<i>MediaTrack</i> track, #str)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>str = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetTrackState(<i>MediaTrack</i> track, <i>string </i>str)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>String</i> str, <i>Int</i> str_sz) = RPR_GetSetTrackState(track, str, str_sz)</code><br><br></div>
deprecated -- see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackStateChunk">SetTrackStateChunk</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackStateChunk">GetTrackStateChunk</a><br><br>
<a name="GetSetTrackState2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetSetTrackState2(MediaTrack* track, char* str, int str_sz, bool isundo)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetSetTrackState2(<i>MediaTrack</i> track, #str, <i>bool </i>isundo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>str = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSetTrackState2(<i>MediaTrack</i> track, <i>string </i>str, <i>boolean</i> isundo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>String</i> str, <i>Int</i> str_sz, <i>Boolean</i> isundo) = RPR_GetSetTrackState2(track, str, str_sz, isundo)</code><br><br></div>
deprecated -- see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackStateChunk">SetTrackStateChunk</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackStateChunk">GetTrackStateChunk</a><br><br>
<a name="GetSubProjectFromSource"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>ReaProject* GetSubProjectFromSource(PCM_source* src)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>ReaProject</i>  GetSubProjectFromSource(<i>PCM_source</i> src)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>ReaProject</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetSubProjectFromSource(<i>PCM_source</i> src)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>ReaProject</i>  RPR_GetSubProjectFromSource(<i>PCM_source</i> src)</code><br><br></div>
<a name="GetTake"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem_Take* GetTake(MediaItem* item, int takeidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem_Take</i>  GetTake(<i>MediaItem</i> item, <i>int </i>takeidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem_Take</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTake(<i>MediaItem</i> item, <i>integer</i> takeidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem_Take</i>  RPR_GetTake(<i>MediaItem</i> item, <i>Int</i> takeidx)</code><br><br></div>
get a take from an item by take count (zero-based)<br><br>
<a name="GetTakeEnvelope"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>TrackEnvelope* GetTakeEnvelope(MediaItem_Take* take, int envidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>TrackEnvelope</i>  GetTakeEnvelope(<i>MediaItem_Take</i> take, <i>int </i>envidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>TrackEnvelope</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTakeEnvelope(<i>MediaItem_Take</i> take, <i>integer</i> envidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>TrackEnvelope</i>  RPR_GetTakeEnvelope(<i>MediaItem_Take</i> take, <i>Int</i> envidx)</code><br><br></div>
<a name="GetTakeEnvelopeByName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>TrackEnvelope* GetTakeEnvelopeByName(MediaItem_Take* take, const char* envname)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>TrackEnvelope</i>  GetTakeEnvelopeByName(<i>MediaItem_Take</i> take, "envname")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>TrackEnvelope</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTakeEnvelopeByName(<i>MediaItem_Take</i> take, <i>string</i> envname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>TrackEnvelope</i>  RPR_GetTakeEnvelopeByName(<i>MediaItem_Take</i> take, <i>String</i> envname)</code><br><br></div>
<a name="GetTakeName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetTakeName(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetTakeName(#retval, <i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTakeName(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_GetTakeName(<i>MediaItem_Take</i> take)</code><br><br></div>
returns NULL if the take is not valid<br><br>
<a name="GetTakeNumStretchMarkers"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetTakeNumStretchMarkers(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetTakeNumStretchMarkers(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTakeNumStretchMarkers(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetTakeNumStretchMarkers(<i>MediaItem_Take</i> take)</code><br><br></div>
Returns number of stretch markers in take<br><br>
<a name="GetTakeStretchMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetTakeStretchMarker(MediaItem_Take* take, int idx, double* posOut, double* srcposOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetTakeStretchMarker(<i>MediaItem_Take</i> take, <i>int </i>idx, <i>&amp;</i>pos, <i>optional &amp;</i>srcpos)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>number </i>pos, <i>optional number </i>srcpos = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTakeStretchMarker(<i>MediaItem_Take</i> take, <i>integer</i> idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> idx, <i>Float</i> posOut, <i>Float</i> srcposOutOptional) = RPR_GetTakeStretchMarker(take, idx, posOut, srcposOutOptional)</code><br><br></div>
Gets information on a stretch marker, idx is 0..n. Returns false if stretch marker not valid. posOut will be set to position in item, srcposOutOptional will be set to source media position. Returns index. if input index is -1, next marker is found using position (or source position if position is -1). If position/source position are used to find marker position, their values are not updated.<br><br>
<a name="GetTakeStretchMarkerSlope"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetTakeStretchMarkerSlope(MediaItem_Take* take, int idx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetTakeStretchMarkerSlope(<i>MediaItem_Take</i> take, <i>int </i>idx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTakeStretchMarkerSlope(<i>MediaItem_Take</i> take, <i>integer</i> idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetTakeStretchMarkerSlope(<i>MediaItem_Take</i> take, <i>Int</i> idx)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTakeStretchMarkerSlope">SetTakeStretchMarkerSlope</a><br><br>
<a name="GetTCPFXParm"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTCPFXParm(ReaProject* project, MediaTrack* track, int index, int* fxindexOut, int* parmidxOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTCPFXParm(<i>ReaProject</i> project, <i>MediaTrack</i> track, <i>int </i>index, <i>int &amp;</i>fxindex, <i>int &amp;</i>parmidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>fxindex, <i>number </i>parmidx = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTCPFXParm(<i>ReaProject</i> project, <i>MediaTrack</i> track, <i>integer</i> index)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>ReaProject</i> project, <i>MediaTrack</i> track, <i>Int</i> index, <i>Int</i> fxindexOut, <i>Int</i> parmidxOut) = RPR_GetTCPFXParm(project, track, index, fxindexOut, parmidxOut)</code><br><br></div>
Get information about a specific FX parameter knob (see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountTCPFXParms">CountTCPFXParms</a>).<br><br>
<a name="GetTempoMatchPlayRate"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTempoMatchPlayRate(PCM_source* source, double srcscale, double position, double mult, double* rateOut, double* targetlenOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTempoMatchPlayRate(<i>PCM_source</i> source, srcscale, position, mult, <i>&amp;</i>rate, <i>&amp;</i>targetlen)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>rate, <i>number </i>targetlen = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTempoMatchPlayRate(<i>PCM_source</i> source, <i>number</i> srcscale, <i>number</i> position, <i>number</i> mult)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>PCM_source</i> source, <i>Float</i> srcscale, <i>Float</i> position, <i>Float</i> mult, <i>Float</i> rateOut, <i>Float</i> targetlenOut) = RPR_GetTempoMatchPlayRate(source, srcscale, position, mult, rateOut, targetlenOut)</code><br><br></div>
finds the playrate and target length to insert this item stretched to a round power-of-2 number of bars, between 1/8 and 256<br><br>
<a name="GetTempoTimeSigMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTempoTimeSigMarker(ReaProject* proj, int ptidx, double* timeposOut, int* measureposOut, double* beatposOut, double* bpmOut, int* timesig_numOut, int* timesig_denomOut, bool* lineartempoOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTempoTimeSigMarker(<i>ReaProject</i> proj, <i>int </i>ptidx, <i>&amp;</i>timepos, <i>int &amp;</i>measurepos, <i>&amp;</i>beatpos, <i>&amp;</i>bpm, <i>int &amp;</i>timesig_num, <i>int &amp;</i>timesig_denom, <i>bool &amp;</i>lineartempo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>timepos, <i>number </i>measurepos, <i>number </i>beatpos, <i>number </i>bpm, <i>number </i>timesig_num, <i>number </i>timesig_denom, <i>boolean </i>lineartempo = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTempoTimeSigMarker(<i>ReaProject</i> proj, <i>integer</i> ptidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>ReaProject</i> proj, <i>Int</i> ptidx, <i>Float</i> timeposOut, <i>Int</i> measureposOut, <i>Float</i> beatposOut, <i>Float</i> bpmOut, <i>Int</i> timesig_numOut, <i>Int</i> timesig_denomOut, <i>Boolean</i> lineartempoOut) = RPR_GetTempoTimeSigMarker(proj, ptidx, timeposOut, measureposOut, beatposOut, bpmOut, timesig_numOut, timesig_denomOut, lineartempoOut)</code><br><br></div>
Get information about a tempo/time signature marker. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountTempoTimeSigMarkers">CountTempoTimeSigMarkers</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTempoTimeSigMarker">SetTempoTimeSigMarker</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#AddTempoTimeSigMarker">AddTempoTimeSigMarker</a>.<br><br>
<a name="GetToggleCommandState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetToggleCommandState(int command_id)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetToggleCommandState(<i>int </i>command_id)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetToggleCommandState(<i>integer</i> command_id)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetToggleCommandState(<i>Int</i> command_id)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetToggleCommandStateEx">GetToggleCommandStateEx</a>.<br><br>
<a name="GetToggleCommandStateEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetToggleCommandStateEx(int section_id, int command_id)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetToggleCommandStateEx(<i>int </i>section_id, <i>int </i>command_id)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetToggleCommandStateEx(<i>integer</i> section_id, <i>integer</i> command_id)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetToggleCommandStateEx(<i>Int</i> section_id, <i>Int</i> command_id)</code><br><br></div>
For the main action context, the MIDI editor, or the media explorer, returns the toggle state of the action. 0=off, 1=on, -1=NA because the action does not have on/off states. For the MIDI editor, the action state for the most recently focused window will be returned.<br><br>
<a name="GetTooltipWindow"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>HWND GetTooltipWindow()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>HWND</i>  GetTooltipWindow()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>HWND</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTooltipWindow()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>HWND</i>  RPR_GetTooltipWindow()</code><br><br></div>
gets a tooltip window,in case you want to ask it for font information. Can return NULL.<br><br>
<a name="GetTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* GetTrack(ReaProject* proj, int trackidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  GetTrack(<i>ReaProject</i> proj, <i>int </i>trackidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrack(<i>ReaProject</i> proj, <i>integer</i> trackidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_GetTrack(<i>ReaProject</i> proj, <i>Int</i> trackidx)</code><br><br></div>
get a track from a project by track count (zero-based) (proj=0 for active project)<br><br>
<a name="GetTrackAutomationMode"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetTrackAutomationMode(MediaTrack* tr)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetTrackAutomationMode(<i>MediaTrack</i> tr)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackAutomationMode(<i>MediaTrack</i> tr)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetTrackAutomationMode(<i>MediaTrack</i> tr)</code><br><br></div>
return the track mode, regardless of global override<br><br>
<a name="GetTrackColor"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetTrackColor(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetTrackColor(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackColor(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetTrackColor(<i>MediaTrack</i> track)</code><br><br></div>
Returns the track custom color as OS dependent color|0x100000 (i.e. ColorToNative(r,g,b)|0x100000). Black is returned as 0x01000000, no color setting is returned as 0.<br><br>
<a name="GetTrackDepth"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetTrackDepth(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetTrackDepth(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackDepth(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetTrackDepth(<i>MediaTrack</i> track)</code><br><br></div>
<a name="GetTrackEnvelope"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>TrackEnvelope* GetTrackEnvelope(MediaTrack* track, int envidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>TrackEnvelope</i>  GetTrackEnvelope(<i>MediaTrack</i> track, <i>int </i>envidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>TrackEnvelope</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackEnvelope(<i>MediaTrack</i> track, <i>integer</i> envidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>TrackEnvelope</i>  RPR_GetTrackEnvelope(<i>MediaTrack</i> track, <i>Int</i> envidx)</code><br><br></div>
<a name="GetTrackEnvelopeByChunkName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>TrackEnvelope* GetTrackEnvelopeByChunkName(MediaTrack* tr, const char* cfgchunkname)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>TrackEnvelope</i>  GetTrackEnvelopeByChunkName(<i>MediaTrack</i> tr, "cfgchunkname")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>TrackEnvelope</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackEnvelopeByChunkName(<i>MediaTrack</i> tr, <i>string</i> cfgchunkname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>TrackEnvelope</i>  RPR_GetTrackEnvelopeByChunkName(<i>MediaTrack</i> tr, <i>String</i> cfgchunkname)</code><br><br></div>
Gets a built-in track envelope by configuration chunk name, e.g. "&lt;VOLENV".<br>
<br><br>
<a name="GetTrackEnvelopeByName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>TrackEnvelope* GetTrackEnvelopeByName(MediaTrack* track, const char* envname)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>TrackEnvelope</i>  GetTrackEnvelopeByName(<i>MediaTrack</i> track, "envname")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>TrackEnvelope</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackEnvelopeByName(<i>MediaTrack</i> track, <i>string</i> envname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>TrackEnvelope</i>  RPR_GetTrackEnvelopeByName(<i>MediaTrack</i> track, <i>String</i> envname)</code><br><br></div>
<a name="GetTrackGUID"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>GUID* GetTrackGUID(MediaTrack* tr)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetTrackGUID(#retguid, <i>MediaTrack</i> tr)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> GUID = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackGUID(<i>MediaTrack</i> tr)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>GUID</i>  RPR_GetTrackGUID(<i>MediaTrack</i> tr)</code><br><br></div>
<a name="GetTrackMediaItem"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem* GetTrackMediaItem(MediaTrack* tr, int itemidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem</i>  GetTrackMediaItem(<i>MediaTrack</i> tr, <i>int </i>itemidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackMediaItem(<i>MediaTrack</i> tr, <i>integer</i> itemidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem</i>  RPR_GetTrackMediaItem(<i>MediaTrack</i> tr, <i>Int</i> itemidx)</code><br><br></div>
<a name="GetTrackMIDILyrics"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackMIDILyrics(MediaTrack* track, int flag, char* bufWant16384, int* bufWant16384_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackMIDILyrics(<i>MediaTrack</i> track, <i>int </i>flag, #bufWant16384)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>bufWant16384 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackMIDILyrics(<i>MediaTrack</i> track, <i>integer</i> flag, <i>string </i>bufWant16384)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> flag, <i>String</i> bufWant16384, <i>Int</i> bufWant16384_sz) = RPR_GetTrackMIDILyrics(track, flag, bufWant16384, bufWant16384_sz)</code><br><br></div>
Get all MIDI lyrics on the track. Lyrics will be returned as one string with tabs between each word. flag&amp;1: double tabs at the end of each measure and triple tabs when skipping measures, flag&amp;2: each lyric is preceded by its beat position in the project (example with flag=2: "1.1.2\tLyric for measure 1 beat 2\t.1.1\tLyric for measure 2 beat 1	"). See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackMIDILyrics">SetTrackMIDILyrics</a><br><br>
<a name="GetTrackMIDINoteName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetTrackMIDINoteName(int track, int pitch, int chan)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetTrackMIDINoteName(#retval, <i>int </i>track, <i>int </i>pitch, <i>int </i>chan)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackMIDINoteName(<i>integer</i> track, <i>integer</i> pitch, <i>integer</i> chan)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_GetTrackMIDINoteName(<i>Int</i> track, <i>Int</i> pitch, <i>Int</i> chan)</code><br><br></div>
see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackMIDINoteNameEx">GetTrackMIDINoteNameEx</a><br><br>
<a name="GetTrackMIDINoteNameEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetTrackMIDINoteNameEx(ReaProject* proj, MediaTrack* track, int pitch, int chan)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetTrackMIDINoteNameEx(#retval, <i>ReaProject</i> proj, <i>MediaTrack</i> track, <i>int </i>pitch, <i>int </i>chan)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackMIDINoteNameEx(<i>ReaProject</i> proj, <i>MediaTrack</i> track, <i>integer</i> pitch, <i>integer</i> chan)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_GetTrackMIDINoteNameEx(<i>ReaProject</i> proj, <i>MediaTrack</i> track, <i>Int</i> pitch, <i>Int</i> chan)</code><br><br></div>
Get note/CC name. pitch 128 for CC0 name, 129 for CC1 name, etc. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackMIDINoteNameEx">SetTrackMIDINoteNameEx</a><br><br>
<a name="GetTrackMIDINoteRange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetTrackMIDINoteRange(ReaProject* proj, MediaTrack* track, int* note_loOut, int* note_hiOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetTrackMIDINoteRange(<i>ReaProject</i> proj, <i>MediaTrack</i> track, <i>int &amp;</i>note_lo, <i>int &amp;</i>note_hi)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number </i>note_lo, <i>number </i>note_hi = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackMIDINoteRange(<i>ReaProject</i> proj, <i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>ReaProject</i> proj, <i>MediaTrack</i> track, <i>Int</i> note_loOut, <i>Int</i> note_hiOut) = RPR_GetTrackMIDINoteRange(proj, track, note_loOut, note_hiOut)</code><br><br></div>
<a name="GetTrackName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackName(MediaTrack* track, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackName(<i>MediaTrack</i> track, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackName(<i>MediaTrack</i> track, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_GetTrackName(track, buf, buf_sz)</code><br><br></div>
Returns "MASTER" for master track, "Track N" if track has no name.<br><br>
<a name="GetTrackNumMediaItems"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetTrackNumMediaItems(MediaTrack* tr)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetTrackNumMediaItems(<i>MediaTrack</i> tr)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackNumMediaItems(<i>MediaTrack</i> tr)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetTrackNumMediaItems(<i>MediaTrack</i> tr)</code><br><br></div>
<a name="GetTrackNumSends"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GetTrackNumSends(MediaTrack* tr, int category)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GetTrackNumSends(<i>MediaTrack</i> tr, <i>int </i>category)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackNumSends(<i>MediaTrack</i> tr, <i>integer</i> category)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GetTrackNumSends(<i>MediaTrack</i> tr, <i>Int</i> category)</code><br><br></div>
returns number of sends/receives/hardware outputs - category is &lt;0 for receives, 0=sends, &gt;0 for hardware outputs<br><br>
<a name="GetTrackReceiveName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackReceiveName(MediaTrack* track, int recv_index, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackReceiveName(<i>MediaTrack</i> track, <i>int </i>recv_index, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackReceiveName(<i>MediaTrack</i> track, <i>integer</i> recv_index, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> recv_index, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_GetTrackReceiveName(track, recv_index, buf, buf_sz)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackSendName">GetTrackSendName</a>.<br><br>
<a name="GetTrackReceiveUIMute"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackReceiveUIMute(MediaTrack* track, int recv_index, bool* muteOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackReceiveUIMute(<i>MediaTrack</i> track, <i>int </i>recv_index, <i>bool &amp;</i>mute)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>boolean </i>mute = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackReceiveUIMute(<i>MediaTrack</i> track, <i>integer</i> recv_index)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> recv_index, <i>Boolean</i> muteOut) = RPR_GetTrackReceiveUIMute(track, recv_index, muteOut)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackSendUIMute">GetTrackSendUIMute</a>.<br><br>
<a name="GetTrackReceiveUIVolPan"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackReceiveUIVolPan(MediaTrack* track, int recv_index, double* volumeOut, double* panOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackReceiveUIVolPan(<i>MediaTrack</i> track, <i>int </i>recv_index, <i>&amp;</i>volume, <i>&amp;</i>pan)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>volume, <i>number </i>pan = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackReceiveUIVolPan(<i>MediaTrack</i> track, <i>integer</i> recv_index)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> recv_index, <i>Float</i> volumeOut, <i>Float</i> panOut) = RPR_GetTrackReceiveUIVolPan(track, recv_index, volumeOut, panOut)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackSendUIVolPan">GetTrackSendUIVolPan</a>.<br><br>
<a name="GetTrackSendInfo_Value"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double GetTrackSendInfo_Value(MediaTrack* tr, int category, int sendidx, const char* parmname)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> GetTrackSendInfo_Value(<i>MediaTrack</i> tr, <i>int </i>category, <i>int </i>sendidx, "parmname")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackSendInfo_Value(<i>MediaTrack</i> tr, <i>integer</i> category, <i>integer</i> sendidx, <i>string</i> parmname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_GetTrackSendInfo_Value(<i>MediaTrack</i> tr, <i>Int</i> category, <i>Int</i> sendidx, <i>String</i> parmname)</code><br><br></div>
Get send/receive/hardware output numerical-value attributes.<br>
category is &lt;0 for receives, 0=sends, &gt;0 for hardware outputs<br>
parameter names:<br>
B_MUTE : returns bool *<br>
B_PHASE : returns bool *, true to flip phase<br>
B_MONO : returns bool *<br>
D_VOL : returns double *, 1.0 = +0dB etc<br>
D_PAN : returns double *, -1..+1<br>
D_PANLAW : returns double *,1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc<br>
I_SENDMODE : returns int *, 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx<br>
I_AUTOMODE : returns int * : automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch)<br>
I_SRCCHAN : returns int *, index,&amp;1024=mono, -1 for none<br>
I_DSTCHAN : returns int *, index, &amp;1024=mono, otherwise stereo pair, hwout:&amp;512=rearoute<br>
I_MIDIFLAGS : returns int *, low 5 bits=source channel 0=all, 1-16, next 5 bits=dest channel, 0=orig, 1-16=chanP_DESTTRACK : read only, returns MediaTrack *, destination track, only applies for sends/recvs<br>
P_SRCTRACK : read only, returns MediaTrack *, source track, only applies for sends/recvs<br>
P_ENV : read only, returns TrackEnvelope *, setNewValue=&lt;VOLENV, &lt;PANENV, etc<br>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTrackSend">CreateTrackSend</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#RemoveTrackSend">RemoveTrackSend</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackNumSends">GetTrackNumSends</a>.<br><br>
<a name="GetTrackSendName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackSendName(MediaTrack* track, int send_index, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackSendName(<i>MediaTrack</i> track, <i>int </i>send_index, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackSendName(<i>MediaTrack</i> track, <i>integer</i> send_index, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> send_index, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_GetTrackSendName(track, send_index, buf, buf_sz)</code><br><br></div>
send_idx&gt;=0 for hw ouputs, &gt;=nb_of_hw_ouputs for sends. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackReceiveName">GetTrackReceiveName</a>.<br><br>
<a name="GetTrackSendUIMute"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackSendUIMute(MediaTrack* track, int send_index, bool* muteOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackSendUIMute(<i>MediaTrack</i> track, <i>int </i>send_index, <i>bool &amp;</i>mute)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>boolean </i>mute = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackSendUIMute(<i>MediaTrack</i> track, <i>integer</i> send_index)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> send_index, <i>Boolean</i> muteOut) = RPR_GetTrackSendUIMute(track, send_index, muteOut)</code><br><br></div>
send_idx&gt;=0 for hw ouputs, &gt;=nb_of_hw_ouputs for sends. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackReceiveUIMute">GetTrackReceiveUIMute</a>.<br><br>
<a name="GetTrackSendUIVolPan"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackSendUIVolPan(MediaTrack* track, int send_index, double* volumeOut, double* panOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackSendUIVolPan(<i>MediaTrack</i> track, <i>int </i>send_index, <i>&amp;</i>volume, <i>&amp;</i>pan)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>volume, <i>number </i>pan = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackSendUIVolPan(<i>MediaTrack</i> track, <i>integer</i> send_index)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> send_index, <i>Float</i> volumeOut, <i>Float</i> panOut) = RPR_GetTrackSendUIVolPan(track, send_index, volumeOut, panOut)</code><br><br></div>
send_idx&gt;=0 for hw ouputs, &gt;=nb_of_hw_ouputs for sends. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackReceiveUIVolPan">GetTrackReceiveUIVolPan</a>.<br><br>
<a name="GetTrackState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* GetTrackState(MediaTrack* track, int* flagsOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  GetTrackState(#retval, <i>MediaTrack</i> track, <i>int &amp;</i>flags)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> retval, <i>number </i>flags = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackState(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> retval, <i>MediaTrack</i> track, <i>Int</i> flagsOut) = RPR_GetTrackState(track, flagsOut)</code><br><br></div>
Gets track state, returns track name.<br>
flags will be set to:<br>
&amp;1=folder<br>
&amp;2=selected<br>
&amp;4=has fx enabled<br>
&amp;8=muted<br>
&amp;16=soloed<br>
&amp;32=SIP'd (with &amp;16)<br>
&amp;64=rec armed<br>
&amp;128=rec monitoring on<br>
&amp;256=rec monitoring auto<br>
&amp;512=hide from TCP<br>
&amp;1024=hide from MCP<br><br>
<a name="GetTrackStateChunk"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackStateChunk(MediaTrack* track, char* strNeedBig, int strNeedBig_sz, bool isundoOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackStateChunk(<i>MediaTrack</i> track, #str, <i>bool </i>isundo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>str = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackStateChunk(<i>MediaTrack</i> track, <i>string </i>str, <i>boolean</i> isundo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>String</i> strNeedBig, <i>Int</i> strNeedBig_sz, <i>Boolean</i> isundoOptional) = RPR_GetTrackStateChunk(track, strNeedBig, strNeedBig_sz, isundoOptional)</code><br><br></div>
Gets the RPPXML state of a track, returns true if successful. Undo flag is a performance/caching hint.<br><br>
<a name="GetTrackUIMute"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackUIMute(MediaTrack* track, bool* muteOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackUIMute(<i>MediaTrack</i> track, <i>bool &amp;</i>mute)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>boolean </i>mute = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackUIMute(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Boolean</i> muteOut) = RPR_GetTrackUIMute(track, muteOut)</code><br><br></div>
<a name="GetTrackUIPan"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackUIPan(MediaTrack* track, double* pan1Out, double* pan2Out, int* panmodeOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackUIPan(<i>MediaTrack</i> track, <i>&amp;</i>pan1, <i>&amp;</i>pan2, <i>int &amp;</i>panmode)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>pan1, <i>number </i>pan2, <i>number </i>panmode = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackUIPan(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Float</i> pan1Out, <i>Float</i> pan2Out, <i>Int</i> panmodeOut) = RPR_GetTrackUIPan(track, pan1Out, pan2Out, panmodeOut)</code><br><br></div>
<a name="GetTrackUIVolPan"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetTrackUIVolPan(MediaTrack* track, double* volumeOut, double* panOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetTrackUIVolPan(<i>MediaTrack</i> track, <i>&amp;</i>volume, <i>&amp;</i>pan)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>volume, <i>number </i>pan = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetTrackUIVolPan(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Float</i> volumeOut, <i>Float</i> panOut) = RPR_GetTrackUIVolPan(track, volumeOut, panOut)</code><br><br></div>
<a name="GetUnderrunTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GetUnderrunTime(unsigned int* audio_xrunOutOptional, unsigned int* media_xrunOutOptional, unsigned int* curtimeOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GetUnderrunTime(<i>optional unsigned int &amp;</i>audio_xrun, <i>optional unsigned int &amp;</i>media_xrun, <i>optional unsigned int &amp;</i>curtime)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>optional number </i>audio_xrun, <i>optional number </i>media_xrun, <i>optional number </i>curtime = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetUnderrunTime()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_GetUnderrunTime(<i>unsigned int</i> audio_xrunOutOptional, <i>unsigned int</i> media_xrunOutOptional, <i>unsigned int</i> curtimeOutOptional)</code><br><br></div>
retrieves the last timestamps of audio xrun (yellow-flash, if available), media xrun (red-flash), and the current time stamp (all milliseconds)<br><br>
<a name="GetUserFileNameForRead"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetUserFileNameForRead(char* filenameNeed4096, const char* title, const char* defext)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetUserFileNameForRead(#filenameNeed4096, "title", "defext")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>filenameNeed4096 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetUserFileNameForRead(<i>string </i>filenameNeed4096, <i>string</i> title, <i>string</i> defext)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>String</i> filenameNeed4096, <i>String</i> title, <i>String</i> defext) = RPR_GetUserFileNameForRead(filenameNeed4096, title, defext)</code><br><br></div>
returns true if the user selected a valid file, false if the user canceled the dialog<br><br>
<a name="GetUserInputs"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool GetUserInputs(const char* title, int num_inputs, const char* captions_csv, char* retvals_csv, int retvals_csv_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> GetUserInputs("title", <i>int </i>num_inputs, "captions_csv", #retvals_csv)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>retvals_csv = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GetUserInputs(<i>string</i> title, <i>integer</i> num_inputs, <i>string</i> captions_csv, <i>string </i>retvals_csv)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>String</i> title, <i>Int</i> num_inputs, <i>String</i> captions_csv, <i>String</i> retvals_csv, <i>Int</i> retvals_csv_sz) = RPR_GetUserInputs(title, num_inputs, captions_csv, retvals_csv, retvals_csv_sz)</code><br><br></div>
Get values from the user.<br>
If a caption begins with *, for example "*password", the edit field will not display the input text.<br>
Maximum fields is 16. Values are returned as a comma-separated string. Returns false if the user canceled the dialog. To increase text field width, add an extra caption field, and specify extrawidth=xyz<br><br>
<a name="GoToMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GoToMarker(ReaProject* proj, int marker_index, bool use_timeline_order)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GoToMarker(<i>ReaProject</i> proj, <i>int </i>marker_index, <i>bool </i>use_timeline_order)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GoToMarker(<i>ReaProject</i> proj, <i>integer</i> marker_index, <i>boolean</i> use_timeline_order)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_GoToMarker(<i>ReaProject</i> proj, <i>Int</i> marker_index, <i>Boolean</i> use_timeline_order)</code><br><br></div>
Go to marker. If use_timeline_order==true, marker_index 1 refers to the first marker on the timeline.  If use_timeline_order==false, marker_index 1 refers to the first marker with the user-editable index of 1.<br><br>
<a name="GoToRegion"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void GoToRegion(ReaProject* proj, int region_index, bool use_timeline_order)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>GoToRegion(<i>ReaProject</i> proj, <i>int </i>region_index, <i>bool </i>use_timeline_order)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GoToRegion(<i>ReaProject</i> proj, <i>integer</i> region_index, <i>boolean</i> use_timeline_order)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_GoToRegion(<i>ReaProject</i> proj, <i>Int</i> region_index, <i>Boolean</i> use_timeline_order)</code><br><br></div>
Seek to region after current region finishes playing (smooth seek). If use_timeline_order==true, region_index 1 refers to the first region on the timeline.  If use_timeline_order==false, region_index 1 refers to the first region with the user-editable index of 1.<br><br>
<a name="GR_SelectColor"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GR_SelectColor(HWND hwnd, int* colorOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GR_SelectColor(<i>HWND</i> hwnd, <i>int &amp;</i>color)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>number </i>color = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GR_SelectColor(<i>HWND</i> hwnd)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>HWND</i> hwnd, <i>Int</i> colorOut) = RPR_GR_SelectColor(hwnd, colorOut)</code><br><br></div>
Runs the system color chooser dialog.  Returns 0 if the user cancels the dialog.<br><br>
<a name="GSC_mainwnd"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int GSC_mainwnd(int t)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> GSC_mainwnd(<i>int </i>t)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.GSC_mainwnd(<i>integer</i> t)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_GSC_mainwnd(<i>Int</i> t)</code><br><br></div>
this is just like win32 GetSysColor() but can have overrides.<br><br>
<a name="guidToString"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void guidToString(const GUID* g, char* destNeed64)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>guidToString("gGUID", #destNeed64)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>destNeed64 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.guidToString(<i>string</i> gGUID, <i>string </i>destNeed64)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>const GUID</i> g, <i>String</i> destNeed64) = RPR_guidToString(g, destNeed64)</code><br><br></div>
dest should be at least 64 chars long to be safe<br><br>
<a name="HasExtState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool HasExtState(const char* section, const char* key)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> HasExtState("section", "key")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.HasExtState(<i>string</i> section, <i>string</i> key)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_HasExtState(<i>String</i> section, <i>String</i> key)</code><br><br></div>
Returns true if there exists an extended state value for a specific section and key. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetExtState">SetExtState</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetExtState">GetExtState</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteExtState">DeleteExtState</a>.<br><br>
<a name="HasTrackMIDIPrograms"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* HasTrackMIDIPrograms(int track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  HasTrackMIDIPrograms(#retval, <i>int </i>track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.HasTrackMIDIPrograms(<i>integer</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_HasTrackMIDIPrograms(<i>Int</i> track)</code><br><br></div>
returns name of track plugin that is supplying MIDI programs,or NULL if there is none<br><br>
<a name="HasTrackMIDIProgramsEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* HasTrackMIDIProgramsEx(ReaProject* proj, MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  HasTrackMIDIProgramsEx(#retval, <i>ReaProject</i> proj, <i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.HasTrackMIDIProgramsEx(<i>ReaProject</i> proj, <i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_HasTrackMIDIProgramsEx(<i>ReaProject</i> proj, <i>MediaTrack</i> track)</code><br><br></div>
returns name of track plugin that is supplying MIDI programs,or NULL if there is none<br><br>
<a name="Help_Set"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Help_Set(const char* helpstring, bool is_temporary_help)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Help_Set("helpstring", <i>bool </i>is_temporary_help)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Help_Set(<i>string</i> helpstring, <i>boolean</i> is_temporary_help)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Help_Set(<i>String</i> helpstring, <i>Boolean</i> is_temporary_help)</code><br><br></div>
<a name="image_resolve_fn"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void image_resolve_fn(const char* in, char* out, int out_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>image_resolve_fn("in", #out)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>out = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.image_resolve_fn(<i>string</i> in, <i>string </i>out)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> in, <i>String</i> out, <i>Int</i> out_sz) = RPR_image_resolve_fn(in, out, out_sz)</code><br><br></div>
<a name="InsertAutomationItem"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int InsertAutomationItem(TrackEnvelope* env, int pool_id, double position, double length)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> InsertAutomationItem(<i>TrackEnvelope</i> env, <i>int </i>pool_id, position, length)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.InsertAutomationItem(<i>TrackEnvelope</i> env, <i>integer</i> pool_id, <i>number</i> position, <i>number</i> length)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_InsertAutomationItem(<i>TrackEnvelope</i> env, <i>Int</i> pool_id, <i>Float</i> position, <i>Float</i> length)</code><br><br></div>
Insert a new automation item. pool_id &lt; 0 collects existing envelope points into the automation item; if pool_id is &gt;= 0 the automation item will be a new instance of that pool (which will be created as an empty instance if it does not exist). Returns the index of the item, suitable for passing to other automation item API functions. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetAutomationItemInfo">GetSetAutomationItemInfo</a>.<br><br>
<a name="InsertEnvelopePoint"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool InsertEnvelopePoint(TrackEnvelope* envelope, double time, double value, int shape, double tension, bool selected, bool* noSortInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> InsertEnvelopePoint(<i>TrackEnvelope</i> envelope, time, value, <i>int </i>shape, tension, <i>bool </i>selected, <i>optional bool</i> noSortIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.InsertEnvelopePoint(<i>TrackEnvelope</i> envelope, <i>number</i> time, <i>number</i> value, <i>integer</i> shape, <i>number</i> tension, <i>boolean</i> selected, <i>optional boolean</i> noSortIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>TrackEnvelope</i> envelope, <i>Float</i> time, <i>Float</i> value, <i>Int</i> shape, <i>Float</i> tension, <i>Boolean</i> selected, <i>Boolean</i> noSortInOptional) = RPR_InsertEnvelopePoint(envelope, time, value, shape, tension, selected, noSortInOptional)</code><br><br></div>
Insert an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePoint">GetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopePoint">SetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeScalingMode">GetEnvelopeScalingMode</a>.<br><br>
<a name="InsertEnvelopePointEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool InsertEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, double time, double value, int shape, double tension, bool selected, bool* noSortInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> InsertEnvelopePointEx(<i>TrackEnvelope</i> envelope, <i>int </i>autoitem_idx, time, value, <i>int </i>shape, tension, <i>bool </i>selected, <i>optional bool</i> noSortIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.InsertEnvelopePointEx(<i>TrackEnvelope</i> envelope, <i>integer</i> autoitem_idx, <i>number</i> time, <i>number</i> value, <i>integer</i> shape, <i>number</i> tension, <i>boolean</i> selected, <i>optional boolean</i> noSortIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>TrackEnvelope</i> envelope, <i>Int</i> autoitem_idx, <i>Float</i> time, <i>Float</i> value, <i>Int</i> shape, <i>Float</i> tension, <i>Boolean</i> selected, <i>Boolean</i> noSortInOptional) = RPR_InsertEnvelopePointEx(envelope, autoitem_idx, time, value, shape, tension, selected, noSortInOptional)</code><br><br></div>
Insert an envelope point. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done.  autoitem_idx==-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePoint">GetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetEnvelopePoint">SetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeScalingMode">GetEnvelopeScalingMode</a>.<br><br>
<a name="InsertMedia"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int InsertMedia(const char* file, int mode)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> InsertMedia("file", <i>int </i>mode)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.InsertMedia(<i>string</i> file, <i>integer</i> mode)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_InsertMedia(<i>String</i> file, <i>Int</i> mode)</code><br><br></div>
mode: 0=add to current track, 1=add new track, 3=add to selected items as takes, &amp;4=stretch/loop to fit time sel, &amp;8=try to match tempo 1x, &amp;16=try to match tempo 0.5x, &amp;32=try to match tempo 2x, &amp;64=don't preserve pitch when matching tempo, &amp;128=no loop/section if startpct/endpct set, &amp;256=force loop regardless of global preference for looping imported items. &amp;512=use high word as absolute track index if mode&amp;3==0.<br><br>
<a name="InsertMediaSection"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int InsertMediaSection(const char* file, int mode, double startpct, double endpct, double pitchshift)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> InsertMediaSection("file", <i>int </i>mode, startpct, endpct, pitchshift)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.InsertMediaSection(<i>string</i> file, <i>integer</i> mode, <i>number</i> startpct, <i>number</i> endpct, <i>number</i> pitchshift)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_InsertMediaSection(<i>String</i> file, <i>Int</i> mode, <i>Float</i> startpct, <i>Float</i> endpct, <i>Float</i> pitchshift)</code><br><br></div>
<a name="InsertTrackAtIndex"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void InsertTrackAtIndex(int idx, bool wantDefaults)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>InsertTrackAtIndex(<i>int </i>idx, <i>bool </i>wantDefaults)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.InsertTrackAtIndex(<i>integer</i> idx, <i>boolean</i> wantDefaults)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_InsertTrackAtIndex(<i>Int</i> idx, <i>Boolean</i> wantDefaults)</code><br><br></div>
inserts a track at idx,of course this will be clamped to 0..GetNumTracks(). wantDefaults=TRUE for default envelopes/FX,otherwise no enabled fx/env<br><br>
<a name="IsMediaExtension"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool IsMediaExtension(const char* ext, bool wantOthers)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> IsMediaExtension("ext", <i>bool </i>wantOthers)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.IsMediaExtension(<i>string</i> ext, <i>boolean</i> wantOthers)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_IsMediaExtension(<i>String</i> ext, <i>Boolean</i> wantOthers)</code><br><br></div>
Tests a file extension (i.e. "wav" or "mid") to see if it's a media extension.<br>
If wantOthers is set, then "RPP", "TXT" and other project-type formats will also pass.<br><br>
<a name="IsMediaItemSelected"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool IsMediaItemSelected(MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> IsMediaItemSelected(<i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.IsMediaItemSelected(<i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_IsMediaItemSelected(<i>MediaItem</i> item)</code><br><br></div>
<a name="IsProjectDirty"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int IsProjectDirty(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> IsProjectDirty(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.IsProjectDirty(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_IsProjectDirty(<i>ReaProject</i> proj)</code><br><br></div>
Is the project dirty (needing save)? Always returns 0 if 'undo/prompt to save' is disabled in preferences.<br><br>
<a name="IsTrackSelected"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool IsTrackSelected(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> IsTrackSelected(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.IsTrackSelected(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_IsTrackSelected(<i>MediaTrack</i> track)</code><br><br></div>
<a name="IsTrackVisible"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool IsTrackVisible(MediaTrack* track, bool mixer)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> IsTrackVisible(<i>MediaTrack</i> track, <i>bool </i>mixer)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.IsTrackVisible(<i>MediaTrack</i> track, <i>boolean</i> mixer)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_IsTrackVisible(<i>MediaTrack</i> track, <i>Boolean</i> mixer)</code><br><br></div>
If mixer==true, returns true if the track is visible in the mixer.  If mixer==false, returns true if the track is visible in the track control panel.<br><br>
<a name="joystick_create"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>joystick_device* joystick_create(const GUID* guid)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>joystick_device</i>  joystick_create("guidGUID")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>joystick_device</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.joystick_create(<i>string</i> guidGUID)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>joystick_device</i>  RPR_joystick_create(<i>const GUID</i> guid)</code><br><br></div>
creates a joystick device<br><br>
<a name="joystick_destroy"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void joystick_destroy(joystick_device* device)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>joystick_destroy(<i>joystick_device</i> device)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.joystick_destroy(<i>joystick_device</i> device)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_joystick_destroy(<i>joystick_device</i> device)</code><br><br></div>
destroys a joystick device<br><br>
<a name="joystick_enum"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* joystick_enum(int index, const char** namestrOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  joystick_enum(#retval, <i>int </i>index, <i>optional </i>#namestr)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> retval, <i>optional </i><i>string </i>namestr = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.joystick_enum(<i>integer</i> index)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_joystick_enum(<i>Int</i> index, <i>String</i> namestrOutOptional)</code><br><br></div>
enumerates installed devices, returns GUID as a string<br><br>
<a name="joystick_getaxis"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double joystick_getaxis(joystick_device* dev, int axis)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> joystick_getaxis(<i>joystick_device</i> dev, <i>int </i>axis)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.joystick_getaxis(<i>joystick_device</i> dev, <i>integer</i> axis)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_joystick_getaxis(<i>joystick_device</i> dev, <i>Int</i> axis)</code><br><br></div>
returns axis value (-1..1)<br><br>
<a name="joystick_getbuttonmask"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>unsigned int joystick_getbuttonmask(joystick_device* dev)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>uint </i> joystick_getbuttonmask(<i>joystick_device</i> dev)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.joystick_getbuttonmask(<i>joystick_device</i> dev)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Unknown</i>  RPR_joystick_getbuttonmask(<i>joystick_device</i> dev)</code><br><br></div>
returns button pressed mask, 1=first button, 2=second...<br><br>
<a name="joystick_getinfo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int joystick_getinfo(joystick_device* dev, int* axesOutOptional, int* povsOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> joystick_getinfo(<i>joystick_device</i> dev, <i>optional int &amp;</i>axes, <i>optional int &amp;</i>povs)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>optional number </i>axes, <i>optional number </i>povs = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.joystick_getinfo(<i>joystick_device</i> dev)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>joystick_device</i> dev, <i>Int</i> axesOutOptional, <i>Int</i> povsOutOptional) = RPR_joystick_getinfo(dev, axesOutOptional, povsOutOptional)</code><br><br></div>
returns button count<br><br>
<a name="joystick_getpov"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double joystick_getpov(joystick_device* dev, int pov)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> joystick_getpov(<i>joystick_device</i> dev, <i>int </i>pov)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.joystick_getpov(<i>joystick_device</i> dev, <i>integer</i> pov)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_joystick_getpov(<i>joystick_device</i> dev, <i>Int</i> pov)</code><br><br></div>
returns POV value (usually 0..655.35, or 655.35 on error)<br><br>
<a name="joystick_update"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool joystick_update(joystick_device* dev)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> joystick_update(<i>joystick_device</i> dev)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.joystick_update(<i>joystick_device</i> dev)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_joystick_update(<i>joystick_device</i> dev)</code><br><br></div>
Updates joystick state from hardware, returns true if successful (joystick_get* will not be valid until joystick_update() is called successfully)<br><br>
<a name="LICE_ClipLine"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool LICE_ClipLine(int* pX1Out, int* pY1Out, int* pX2Out, int* pY2Out, int xLo, int yLo, int xHi, int yHi)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> LICE_ClipLine(<i>int &amp;</i>pX1, <i>int &amp;</i>pY1, <i>int &amp;</i>pX2, <i>int &amp;</i>pY2, <i>int </i>xLo, <i>int </i>yLo, <i>int </i>xHi, <i>int </i>yHi)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>pX1, <i>number </i>pY1, <i>number </i>pX2, <i>number </i>pY2 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.LICE_ClipLine(<i>number </i>pX1, <i>number </i>pY1, <i>number </i>pX2, <i>number </i>pY2, <i>integer</i> xLo, <i>integer</i> yLo, <i>integer</i> xHi, <i>integer</i> yHi)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>Int</i> pX1Out, <i>Int</i> pY1Out, <i>Int</i> pX2Out, <i>Int</i> pY2Out, <i>Int</i> xLo, <i>Int</i> yLo, <i>Int</i> xHi, <i>Int</i> yHi) = RPR_LICE_ClipLine(pX1Out, pY1Out, pX2Out, pY2Out, xLo, yLo, xHi, yHi)</code><br><br></div>
Returns false if the line is entirely offscreen.<br><br>
<a name="Loop_OnArrow"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool Loop_OnArrow(ReaProject* project, int direction)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> Loop_OnArrow(<i>ReaProject</i> project, <i>int </i>direction)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Loop_OnArrow(<i>ReaProject</i> project, <i>integer</i> direction)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_Loop_OnArrow(<i>ReaProject</i> project, <i>Int</i> direction)</code><br><br></div>
Move the loop selection left or right. Returns true if snap is enabled.<br><br>
<a name="Main_OnCommand"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Main_OnCommand(int command, int flag)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Main_OnCommand(<i>int </i>command, <i>int </i>flag)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Main_OnCommand(<i>integer</i> command, <i>integer</i> flag)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Main_OnCommand(<i>Int</i> command, <i>Int</i> flag)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#Main_OnCommandEx">Main_OnCommandEx</a>.<br><br>
<a name="Main_OnCommandEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Main_OnCommandEx(int command, int flag, ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Main_OnCommandEx(<i>int </i>command, <i>int </i>flag, <i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Main_OnCommandEx(<i>integer</i> command, <i>integer</i> flag, <i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Main_OnCommandEx(<i>Int</i> command, <i>Int</i> flag, <i>ReaProject</i> proj)</code><br><br></div>
Performs an action belonging to the main action section. To perform non-native actions (Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s, custom or extension plugins' actions) safely, see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#NamedCommandLookup">NamedCommandLookup</a>().<br><br>
<a name="Main_openProject"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Main_openProject(const char* name)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Main_openProject("name")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Main_openProject(<i>string</i> name)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Main_openProject(<i>String</i> name)</code><br><br></div>
opens a project. will prompt the user to save, etc.<br>
if you pass a .RTrackTemplate file then it adds that to the project instead.<br><br>
<a name="Main_SaveProject"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Main_SaveProject(ReaProject* proj, bool forceSaveAsInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Main_SaveProject(<i>ReaProject</i> proj, <i>bool </i>forceSaveAsIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Main_SaveProject(<i>ReaProject</i> proj, <i>boolean</i> forceSaveAsIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Main_SaveProject(<i>ReaProject</i> proj, <i>Boolean</i> forceSaveAsInOptional)</code><br><br></div>
Save the project.<br><br>
<a name="Main_UpdateLoopInfo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Main_UpdateLoopInfo(int ignoremask)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Main_UpdateLoopInfo(<i>int </i>ignoremask)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Main_UpdateLoopInfo(<i>integer</i> ignoremask)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Main_UpdateLoopInfo(<i>Int</i> ignoremask)</code><br><br></div>
<a name="MarkProjectDirty"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void MarkProjectDirty(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>MarkProjectDirty(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MarkProjectDirty(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_MarkProjectDirty(<i>ReaProject</i> proj)</code><br><br></div>
Marks project as dirty (needing save) if 'undo/prompt to save' is enabled in preferences.<br><br>
<a name="MarkTrackItemsDirty"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void MarkTrackItemsDirty(MediaTrack* track, MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>MarkTrackItemsDirty(<i>MediaTrack</i> track, <i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MarkTrackItemsDirty(<i>MediaTrack</i> track, <i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_MarkTrackItemsDirty(<i>MediaTrack</i> track, <i>MediaItem</i> item)</code><br><br></div>
If track is supplied, item is ignored<br><br>
<a name="Master_GetPlayRate"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double Master_GetPlayRate(ReaProject* project)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> Master_GetPlayRate(<i>ReaProject</i> project)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Master_GetPlayRate(<i>ReaProject</i> project)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_Master_GetPlayRate(<i>ReaProject</i> project)</code><br><br></div>
<a name="Master_GetPlayRateAtTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double Master_GetPlayRateAtTime(double time_s, ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> Master_GetPlayRateAtTime(time_s, <i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Master_GetPlayRateAtTime(<i>number</i> time_s, <i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_Master_GetPlayRateAtTime(<i>Float</i> time_s, <i>ReaProject</i> proj)</code><br><br></div>
<a name="Master_GetTempo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double Master_GetTempo()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> Master_GetTempo()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Master_GetTempo()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_Master_GetTempo()</code><br><br></div>
<a name="Master_NormalizePlayRate"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double Master_NormalizePlayRate(double playrate, bool isnormalized)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> Master_NormalizePlayRate(playrate, <i>bool </i>isnormalized)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Master_NormalizePlayRate(<i>number</i> playrate, <i>boolean</i> isnormalized)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_Master_NormalizePlayRate(<i>Float</i> playrate, <i>Boolean</i> isnormalized)</code><br><br></div>
Convert play rate to/from a value between 0 and 1, representing the position on the project playrate slider.<br><br>
<a name="Master_NormalizeTempo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double Master_NormalizeTempo(double bpm, bool isnormalized)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> Master_NormalizeTempo(bpm, <i>bool </i>isnormalized)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Master_NormalizeTempo(<i>number</i> bpm, <i>boolean</i> isnormalized)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_Master_NormalizeTempo(<i>Float</i> bpm, <i>Boolean</i> isnormalized)</code><br><br></div>
Convert the tempo to/from a value between 0 and 1, representing bpm in the range of 40-296 bpm.<br><br>
<a name="MB"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int MB(const char* msg, const char* title, int type)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> MB("msg", "title", <i>int </i>type)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MB(<i>string</i> msg, <i>string</i> title, <i>integer</i> type)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_MB(<i>String</i> msg, <i>String</i> title, <i>Int</i> type)</code><br><br></div>
type 0=OK,1=OKCANCEL,2=ABORTRETRYIGNORE,3=YESNOCANCEL,4=YESNO,5=RETRYCANCEL : ret 1=OK,2=CANCEL,3=ABORT,4=RETRY,5=IGNORE,6=YES,7=NO<br><br>
<a name="MediaItemDescendsFromTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int MediaItemDescendsFromTrack(MediaItem* item, MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> MediaItemDescendsFromTrack(<i>MediaItem</i> item, <i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MediaItemDescendsFromTrack(<i>MediaItem</i> item, <i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_MediaItemDescendsFromTrack(<i>MediaItem</i> item, <i>MediaTrack</i> track)</code><br><br></div>
Returns 1 if the track holds the item, 2 if the track is a folder containing the track that holds the item, etc.<br><br>
<a name="MIDI_CountEvts"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int MIDI_CountEvts(MediaItem_Take* take, int* notecntOut, int* ccevtcntOut, int* textsyxevtcntOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> MIDI_CountEvts(<i>MediaItem_Take</i> take, <i>int &amp;</i>notecnt, <i>int &amp;</i>ccevtcnt, <i>int &amp;</i>textsyxevtcnt)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>number </i>notecnt, <i>number </i>ccevtcnt, <i>number </i>textsyxevtcnt = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_CountEvts(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> notecntOut, <i>Int</i> ccevtcntOut, <i>Int</i> textsyxevtcntOut) = RPR_MIDI_CountEvts(take, notecntOut, ccevtcntOut, textsyxevtcntOut)</code><br><br></div>
Count the number of notes, CC events, and text/sysex events in a given MIDI item.<br><br>
<a name="MIDI_DeleteCC"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_DeleteCC(MediaItem_Take* take, int ccidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_DeleteCC(<i>MediaItem_Take</i> take, <i>int </i>ccidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_DeleteCC(<i>MediaItem_Take</i> take, <i>integer</i> ccidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_DeleteCC(<i>MediaItem_Take</i> take, <i>Int</i> ccidx)</code><br><br></div>
Delete a MIDI CC event.<br><br>
<a name="MIDI_DeleteEvt"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_DeleteEvt(MediaItem_Take* take, int evtidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_DeleteEvt(<i>MediaItem_Take</i> take, <i>int </i>evtidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_DeleteEvt(<i>MediaItem_Take</i> take, <i>integer</i> evtidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_DeleteEvt(<i>MediaItem_Take</i> take, <i>Int</i> evtidx)</code><br><br></div>
Delete a MIDI event.<br><br>
<a name="MIDI_DeleteNote"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_DeleteNote(MediaItem_Take* take, int noteidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_DeleteNote(<i>MediaItem_Take</i> take, <i>int </i>noteidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_DeleteNote(<i>MediaItem_Take</i> take, <i>integer</i> noteidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_DeleteNote(<i>MediaItem_Take</i> take, <i>Int</i> noteidx)</code><br><br></div>
Delete a MIDI note.<br><br>
<a name="MIDI_DeleteTextSysexEvt"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_DeleteTextSysexEvt(MediaItem_Take* take, int textsyxevtidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_DeleteTextSysexEvt(<i>MediaItem_Take</i> take, <i>int </i>textsyxevtidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_DeleteTextSysexEvt(<i>MediaItem_Take</i> take, <i>integer</i> textsyxevtidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_DeleteTextSysexEvt(<i>MediaItem_Take</i> take, <i>Int</i> textsyxevtidx)</code><br><br></div>
Delete a MIDI text or sysex event.<br><br>
<a name="MIDI_EnumSelCC"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int MIDI_EnumSelCC(MediaItem_Take* take, int ccidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> MIDI_EnumSelCC(<i>MediaItem_Take</i> take, <i>int </i>ccidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_EnumSelCC(<i>MediaItem_Take</i> take, <i>integer</i> ccidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_MIDI_EnumSelCC(<i>MediaItem_Take</i> take, <i>Int</i> ccidx)</code><br><br></div>
Returns the index of the next selected MIDI CC event after ccidx (-1 if there are no more selected events).<br><br>
<a name="MIDI_EnumSelEvts"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int MIDI_EnumSelEvts(MediaItem_Take* take, int evtidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> MIDI_EnumSelEvts(<i>MediaItem_Take</i> take, <i>int </i>evtidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_EnumSelEvts(<i>MediaItem_Take</i> take, <i>integer</i> evtidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_MIDI_EnumSelEvts(<i>MediaItem_Take</i> take, <i>Int</i> evtidx)</code><br><br></div>
Returns the index of the next selected MIDI event after evtidx (-1 if there are no more selected events).<br><br>
<a name="MIDI_EnumSelNotes"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int MIDI_EnumSelNotes(MediaItem_Take* take, int noteidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> MIDI_EnumSelNotes(<i>MediaItem_Take</i> take, <i>int </i>noteidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_EnumSelNotes(<i>MediaItem_Take</i> take, <i>integer</i> noteidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_MIDI_EnumSelNotes(<i>MediaItem_Take</i> take, <i>Int</i> noteidx)</code><br><br></div>
Returns the index of the next selected MIDI note after noteidx (-1 if there are no more selected events).<br><br>
<a name="MIDI_EnumSelTextSysexEvts"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int MIDI_EnumSelTextSysexEvts(MediaItem_Take* take, int textsyxidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> MIDI_EnumSelTextSysexEvts(<i>MediaItem_Take</i> take, <i>int </i>textsyxidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_EnumSelTextSysexEvts(<i>MediaItem_Take</i> take, <i>integer</i> textsyxidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_MIDI_EnumSelTextSysexEvts(<i>MediaItem_Take</i> take, <i>Int</i> textsyxidx)</code><br><br></div>
Returns the index of the next selected MIDI text/sysex event after textsyxidx (-1 if there are no more selected events).<br><br>
<a name="MIDI_GetAllEvts"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_GetAllEvts(MediaItem_Take* take, char* bufNeedBig, int* bufNeedBig_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_GetAllEvts(<i>MediaItem_Take</i> take, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetAllEvts(<i>MediaItem_Take</i> take, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>String</i> bufNeedBig, <i>Int</i> bufNeedBig_sz) = RPR_MIDI_GetAllEvts(take, bufNeedBig, bufNeedBig_sz)</code><br><br></div>
Get all MIDI data. MIDI buffer is returned as a list of { int offset, char flag, int msglen, unsigned char msg[] }. offset: MIDI ticks from previous event, flag: &amp;1=selected &amp;2=muted, msglen: byte length of msg (usually 3), msg: the MIDI message. For tick intervals longer than a 32 bit word can represent, zero-length meta events may be placed between valid events. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_SetAllEvts">MIDI_SetAllEvts</a>.<br><br>
<a name="MIDI_GetCC"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_GetCC(MediaItem_Take* take, int ccidx, bool* selectedOut, bool* mutedOut, double* ppqposOut, int* chanmsgOut, int* chanOut, int* msg2Out, int* msg3Out)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_GetCC(<i>MediaItem_Take</i> take, <i>int </i>ccidx, <i>bool &amp;</i>selected, <i>bool &amp;</i>muted, <i>&amp;</i>ppqpos, <i>int &amp;</i>chanmsg, <i>int &amp;</i>chan, <i>int &amp;</i>msg2, <i>int &amp;</i>msg3)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>boolean </i>selected, <i>boolean </i>muted, <i>number </i>ppqpos, <i>number </i>chanmsg, <i>number </i>chan, <i>number </i>msg2, <i>number </i>msg3 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetCC(<i>MediaItem_Take</i> take, <i>integer</i> ccidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> ccidx, <i>Boolean</i> selectedOut, <i>Boolean</i> mutedOut, <i>Float</i> ppqposOut, <i>Int</i> chanmsgOut, <i>Int</i> chanOut, <i>Int</i> msg2Out, <i>Int</i> msg3Out) = RPR_MIDI_GetCC(take, ccidx, selectedOut, mutedOut, ppqposOut, chanmsgOut, chanOut, msg2Out, msg3Out)</code><br><br></div>
Get MIDI CC event properties.<br><br>
<a name="MIDI_GetEvt"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_GetEvt(MediaItem_Take* take, int evtidx, bool* selectedOut, bool* mutedOut, double* ppqposOut, char* msg, int* msg_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_GetEvt(<i>MediaItem_Take</i> take, <i>int </i>evtidx, <i>bool &amp;</i>selected, <i>bool &amp;</i>muted, <i>&amp;</i>ppqpos, #msg)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>boolean </i>selected, <i>boolean </i>muted, <i>number </i>ppqpos, <i>string </i>msg = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetEvt(<i>MediaItem_Take</i> take, <i>integer</i> evtidx, <i>boolean </i>selected, <i>boolean </i>muted, <i>number </i>ppqpos, <i>string </i>msg)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> evtidx, <i>Boolean</i> selectedOut, <i>Boolean</i> mutedOut, <i>Float</i> ppqposOut, <i>String</i> msg, <i>Int</i> msg_sz) = RPR_MIDI_GetEvt(take, evtidx, selectedOut, mutedOut, ppqposOut, msg, msg_sz)</code><br><br></div>
Get MIDI event properties.<br><br>
<a name="MIDI_GetGrid"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double MIDI_GetGrid(MediaItem_Take* take, double* swingOutOptional, double* noteLenOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> MIDI_GetGrid(<i>MediaItem_Take</i> take, <i>optional &amp;</i>swing, <i>optional &amp;</i>noteLen)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> retval, <i>optional number </i>swing, <i>optional number </i>noteLen = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetGrid(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> retval, <i>MediaItem_Take</i> take, <i>Float</i> swingOutOptional, <i>Float</i> noteLenOutOptional) = RPR_MIDI_GetGrid(take, swingOutOptional, noteLenOutOptional)</code><br><br></div>
Returns the most recent MIDI editor grid size for this MIDI take, in QN. Swing is between 0 and 1. Note length is 0 if it follows the grid size.<br><br>
<a name="MIDI_GetHash"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_GetHash(MediaItem_Take* take, bool notesonly, char* hash, int hash_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_GetHash(<i>MediaItem_Take</i> take, <i>bool </i>notesonly, #hash)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>hash = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetHash(<i>MediaItem_Take</i> take, <i>boolean</i> notesonly, <i>string </i>hash)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Boolean</i> notesonly, <i>String</i> hash, <i>Int</i> hash_sz) = RPR_MIDI_GetHash(take, notesonly, hash, hash_sz)</code><br><br></div>
Get a string that only changes when the MIDI data changes. If notesonly==true, then the string changes only when the MIDI notes change. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetTrackHash">MIDI_GetTrackHash</a><br><br>
<a name="MIDI_GetNote"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_GetNote(MediaItem_Take* take, int noteidx, bool* selectedOut, bool* mutedOut, double* startppqposOut, double* endppqposOut, int* chanOut, int* pitchOut, int* velOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_GetNote(<i>MediaItem_Take</i> take, <i>int </i>noteidx, <i>bool &amp;</i>selected, <i>bool &amp;</i>muted, <i>&amp;</i>startppqpos, <i>&amp;</i>endppqpos, <i>int &amp;</i>chan, <i>int &amp;</i>pitch, <i>int &amp;</i>vel)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>boolean </i>selected, <i>boolean </i>muted, <i>number </i>startppqpos, <i>number </i>endppqpos, <i>number </i>chan, <i>number </i>pitch, <i>number </i>vel = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetNote(<i>MediaItem_Take</i> take, <i>integer</i> noteidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> noteidx, <i>Boolean</i> selectedOut, <i>Boolean</i> mutedOut, <i>Float</i> startppqposOut, <i>Float</i> endppqposOut, <i>Int</i> chanOut, <i>Int</i> pitchOut, <i>Int</i> velOut) = RPR_MIDI_GetNote(take, noteidx, selectedOut, mutedOut, startppqposOut, endppqposOut, chanOut, pitchOut, velOut)</code><br><br></div>
Get MIDI note properties.<br><br>
<a name="MIDI_GetPPQPos_EndOfMeasure"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double MIDI_GetPPQPos_EndOfMeasure(MediaItem_Take* take, double ppqpos)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> MIDI_GetPPQPos_EndOfMeasure(<i>MediaItem_Take</i> take, ppqpos)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetPPQPos_EndOfMeasure(<i>MediaItem_Take</i> take, <i>number</i> ppqpos)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_MIDI_GetPPQPos_EndOfMeasure(<i>MediaItem_Take</i> take, <i>Float</i> ppqpos)</code><br><br></div>
Returns the MIDI tick (ppq) position corresponding to the end of the measure.<br><br>
<a name="MIDI_GetPPQPos_StartOfMeasure"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double MIDI_GetPPQPos_StartOfMeasure(MediaItem_Take* take, double ppqpos)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> MIDI_GetPPQPos_StartOfMeasure(<i>MediaItem_Take</i> take, ppqpos)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetPPQPos_StartOfMeasure(<i>MediaItem_Take</i> take, <i>number</i> ppqpos)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_MIDI_GetPPQPos_StartOfMeasure(<i>MediaItem_Take</i> take, <i>Float</i> ppqpos)</code><br><br></div>
Returns the MIDI tick (ppq) position corresponding to the start of the measure.<br><br>
<a name="MIDI_GetPPQPosFromProjQN"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double MIDI_GetPPQPosFromProjQN(MediaItem_Take* take, double projqn)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> MIDI_GetPPQPosFromProjQN(<i>MediaItem_Take</i> take, projqn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetPPQPosFromProjQN(<i>MediaItem_Take</i> take, <i>number</i> projqn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_MIDI_GetPPQPosFromProjQN(<i>MediaItem_Take</i> take, <i>Float</i> projqn)</code><br><br></div>
Returns the MIDI tick (ppq) position corresponding to a specific project time in quarter notes.<br><br>
<a name="MIDI_GetPPQPosFromProjTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double MIDI_GetPPQPosFromProjTime(MediaItem_Take* take, double projtime)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> MIDI_GetPPQPosFromProjTime(<i>MediaItem_Take</i> take, projtime)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetPPQPosFromProjTime(<i>MediaItem_Take</i> take, <i>number</i> projtime)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_MIDI_GetPPQPosFromProjTime(<i>MediaItem_Take</i> take, <i>Float</i> projtime)</code><br><br></div>
Returns the MIDI tick (ppq) position corresponding to a specific project time in seconds.<br><br>
<a name="MIDI_GetProjQNFromPPQPos"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double MIDI_GetProjQNFromPPQPos(MediaItem_Take* take, double ppqpos)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> MIDI_GetProjQNFromPPQPos(<i>MediaItem_Take</i> take, ppqpos)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetProjQNFromPPQPos(<i>MediaItem_Take</i> take, <i>number</i> ppqpos)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_MIDI_GetProjQNFromPPQPos(<i>MediaItem_Take</i> take, <i>Float</i> ppqpos)</code><br><br></div>
Returns the project time in quarter notes corresponding to a specific MIDI tick (ppq) position.<br><br>
<a name="MIDI_GetProjTimeFromPPQPos"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double MIDI_GetProjTimeFromPPQPos(MediaItem_Take* take, double ppqpos)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> MIDI_GetProjTimeFromPPQPos(<i>MediaItem_Take</i> take, ppqpos)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetProjTimeFromPPQPos(<i>MediaItem_Take</i> take, <i>number</i> ppqpos)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_MIDI_GetProjTimeFromPPQPos(<i>MediaItem_Take</i> take, <i>Float</i> ppqpos)</code><br><br></div>
Returns the project time in seconds corresponding to a specific MIDI tick (ppq) position.<br><br>
<a name="MIDI_GetScale"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_GetScale(MediaItem_Take* take, int* rootOut, int* scaleOut, char* name, int name_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_GetScale(<i>MediaItem_Take</i> take, <i>int &amp;</i>root, <i>int &amp;</i>scale, #name)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>root, <i>number </i>scale, <i>string </i>name = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetScale(<i>MediaItem_Take</i> take, <i>number </i>root, <i>number </i>scale, <i>string </i>name)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> rootOut, <i>Int</i> scaleOut, <i>String</i> name, <i>Int</i> name_sz) = RPR_MIDI_GetScale(take, rootOut, scaleOut, name, name_sz)</code><br><br></div>
Get the active scale in the media source, if any. root 0=C, 1=C#, etc. scale &amp;0x1=root, &amp;0x2=minor 2nd, &amp;0x4=major 2nd, &amp;0x8=minor 3rd, &amp;0xF=fourth, etc.<br><br>
<a name="MIDI_GetTextSysexEvt"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_GetTextSysexEvt(MediaItem_Take* take, int textsyxevtidx, bool* selectedOutOptional, bool* mutedOutOptional, double* ppqposOutOptional, int* typeOutOptional, char* msgOptional, int* msgOptional_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_GetTextSysexEvt(<i>MediaItem_Take</i> take, <i>int </i>textsyxevtidx, <i>optional bool &amp;</i>selected, <i>optional bool &amp;</i>muted, <i>optional &amp;</i>ppqpos, <i>optional int &amp;</i>type, <i>optional </i>#msg)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>optional boolean </i>selected, <i>optional boolean </i>muted, <i>optional number </i>ppqpos, <i>optional number </i>type, <i>optional </i><i>string </i>msg = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetTextSysexEvt(<i>MediaItem_Take</i> take, <i>integer</i> textsyxevtidx, <i>optional boolean </i>selected, <i>optional boolean </i>muted, <i>optional number </i>ppqpos, <i>optional number </i>type, <i>optional </i><i>string </i>msg)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> textsyxevtidx, <i>Boolean</i> selectedOutOptional, <i>Boolean</i> mutedOutOptional, <i>Float</i> ppqposOutOptional, <i>Int</i> typeOutOptional, <i>String</i> msgOptional, <i>Int</i> msgOptional_sz) = RPR_MIDI_GetTextSysexEvt(take, textsyxevtidx, selectedOutOptional, mutedOutOptional, ppqposOutOptional, typeOutOptional, msgOptional, msgOptional_sz)</code><br><br></div>
Get MIDI meta-event properties. Allowable types are -1:sysex (msg should not include bounding F0..F7), 1-7:MIDI text event types.<br><br>
<a name="MIDI_GetTrackHash"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_GetTrackHash(MediaTrack* track, bool notesonly, char* hash, int hash_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_GetTrackHash(<i>MediaTrack</i> track, <i>bool </i>notesonly, #hash)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>hash = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_GetTrackHash(<i>MediaTrack</i> track, <i>boolean</i> notesonly, <i>string </i>hash)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Boolean</i> notesonly, <i>String</i> hash, <i>Int</i> hash_sz) = RPR_MIDI_GetTrackHash(track, notesonly, hash, hash_sz)</code><br><br></div>
Get a string that only changes when the MIDI data changes. If notesonly==true, then the string changes only when the MIDI notes change. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetHash">MIDI_GetHash</a><br><br>
<a name="MIDI_InsertCC"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_InsertCC(MediaItem_Take* take, bool selected, bool muted, double ppqpos, int chanmsg, int chan, int msg2, int msg3)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_InsertCC(<i>MediaItem_Take</i> take, <i>bool </i>selected, <i>bool </i>muted, ppqpos, <i>int </i>chanmsg, <i>int </i>chan, <i>int </i>msg2, <i>int </i>msg3)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_InsertCC(<i>MediaItem_Take</i> take, <i>boolean</i> selected, <i>boolean</i> muted, <i>number</i> ppqpos, <i>integer</i> chanmsg, <i>integer</i> chan, <i>integer</i> msg2, <i>integer</i> msg3)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_InsertCC(<i>MediaItem_Take</i> take, <i>Boolean</i> selected, <i>Boolean</i> muted, <i>Float</i> ppqpos, <i>Int</i> chanmsg, <i>Int</i> chan, <i>Int</i> msg2, <i>Int</i> msg3)</code><br><br></div>
Insert a new MIDI CC event.<br><br>
<a name="MIDI_InsertEvt"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_InsertEvt(MediaItem_Take* take, bool selected, bool muted, double ppqpos, const char* bytestr, int bytestr_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_InsertEvt(<i>MediaItem_Take</i> take, <i>bool </i>selected, <i>bool </i>muted, ppqpos, "bytestr")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_InsertEvt(<i>MediaItem_Take</i> take, <i>boolean</i> selected, <i>boolean</i> muted, <i>number</i> ppqpos, <i>string</i> bytestr)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_InsertEvt(<i>MediaItem_Take</i> take, <i>Boolean</i> selected, <i>Boolean</i> muted, <i>Float</i> ppqpos, <i>String</i> bytestr, <i>Int</i> bytestr_sz)</code><br><br></div>
Insert a new MIDI event.<br><br>
<a name="MIDI_InsertNote"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_InsertNote(MediaItem_Take* take, bool selected, bool muted, double startppqpos, double endppqpos, int chan, int pitch, int vel, const bool* noSortInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_InsertNote(<i>MediaItem_Take</i> take, <i>bool </i>selected, <i>bool </i>muted, startppqpos, endppqpos, <i>int </i>chan, <i>int </i>pitch, <i>int </i>vel, <i>optional bool</i> noSortIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_InsertNote(<i>MediaItem_Take</i> take, <i>boolean</i> selected, <i>boolean</i> muted, <i>number</i> startppqpos, <i>number</i> endppqpos, <i>integer</i> chan, <i>integer</i> pitch, <i>integer</i> vel, <i>optional boolean</i> noSortIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_InsertNote(<i>MediaItem_Take</i> take, <i>Boolean</i> selected, <i>Boolean</i> muted, <i>Float</i> startppqpos, <i>Float</i> endppqpos, <i>Int</i> chan, <i>Int</i> pitch, <i>Int</i> vel, <i>const bool</i> noSortInOptional)</code><br><br></div>
Insert a new MIDI note. Set noSort if inserting multiple events, then call MIDI_Sort when done.<br><br>
<a name="MIDI_InsertTextSysexEvt"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_InsertTextSysexEvt(MediaItem_Take* take, bool selected, bool muted, double ppqpos, int type, const char* bytestr, int bytestr_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_InsertTextSysexEvt(<i>MediaItem_Take</i> take, <i>bool </i>selected, <i>bool </i>muted, ppqpos, <i>int </i>type, "bytestr")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_InsertTextSysexEvt(<i>MediaItem_Take</i> take, <i>boolean</i> selected, <i>boolean</i> muted, <i>number</i> ppqpos, <i>integer</i> type, <i>string</i> bytestr)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_InsertTextSysexEvt(<i>MediaItem_Take</i> take, <i>Boolean</i> selected, <i>Boolean</i> muted, <i>Float</i> ppqpos, <i>Int</i> type, <i>String</i> bytestr, <i>Int</i> bytestr_sz)</code><br><br></div>
Insert a new MIDI text or sysex event. Allowable types are -1:sysex (msg should not include bounding F0..F7), 1-7:MIDI text event types.<br><br>
<a name="midi_reinit"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void midi_reinit()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>midi_reinit()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.midi_reinit()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_midi_reinit()</code><br><br></div>
Reset all MIDI devices<br><br>
<a name="MIDI_SelectAll"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void MIDI_SelectAll(MediaItem_Take* take, bool select)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>MIDI_SelectAll(<i>MediaItem_Take</i> take, <i>bool </i>select)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_SelectAll(<i>MediaItem_Take</i> take, <i>boolean</i> select)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_MIDI_SelectAll(<i>MediaItem_Take</i> take, <i>Boolean</i> select)</code><br><br></div>
Select or deselect all MIDI content.<br><br>
<a name="MIDI_SetAllEvts"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_SetAllEvts(MediaItem_Take* take, const char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_SetAllEvts(<i>MediaItem_Take</i> take, "buf")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_SetAllEvts(<i>MediaItem_Take</i> take, <i>string</i> buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_SetAllEvts(<i>MediaItem_Take</i> take, <i>String</i> buf, <i>Int</i> buf_sz)</code><br><br></div>
Set all MIDI data. MIDI buffer is passed in as a list of { int offset, char flag, int msglen, unsigned char msg[] }. offset: MIDI ticks from previous event, flag: &amp;1=selected &amp;2=muted, msglen: byte length of msg (usually 3), msg: the MIDI message. For tick intervals longer than a 32 bit word can represent, zero-length meta events may be placed between valid events. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDI_GetAllEvts">MIDI_GetAllEvts</a>.<br><br>
<a name="MIDI_SetCC"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_SetCC(MediaItem_Take* take, int ccidx, const bool* selectedInOptional, const bool* mutedInOptional, const double* ppqposInOptional, const int* chanmsgInOptional, const int* chanInOptional, const int* msg2InOptional, const int* msg3InOptional, const bool* noSortInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_SetCC(<i>MediaItem_Take</i> take, <i>int </i>ccidx, <i>optional bool</i> selectedIn, <i>optional bool</i> mutedIn, <i>optional </i>ppqposIn, <i>optional int</i> chanmsgIn, <i>optional int</i> chanIn, <i>optional int</i> msg2In, <i>optional int</i> msg3In, <i>optional bool</i> noSortIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_SetCC(<i>MediaItem_Take</i> take, <i>integer</i> ccidx, <i>optional boolean</i> selectedIn, <i>optional boolean</i> mutedIn, <i>optional number </i>ppqposIn, <i>optional number</i> chanmsgIn, <i>optional number</i> chanIn, <i>optional number</i> msg2In, <i>optional number</i> msg3In, <i>optional boolean</i> noSortIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_SetCC(<i>MediaItem_Take</i> take, <i>Int</i> ccidx, <i>const bool</i> selectedInOptional, <i>const bool</i> mutedInOptional, <i>const double</i> ppqposInOptional, <i>const int</i> chanmsgInOptional, <i>const int</i> chanInOptional, <i>const int</i> msg2InOptional, <i>const int</i> msg3InOptional, <i>const bool</i> noSortInOptional)</code><br><br></div>
Set MIDI CC event properties. Properties passed as NULL will not be set. set noSort if setting multiple events, then call MIDI_Sort when done.<br><br>
<a name="MIDI_SetEvt"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_SetEvt(MediaItem_Take* take, int evtidx, const bool* selectedInOptional, const bool* mutedInOptional, const double* ppqposInOptional, const char* msgOptional, int msgOptional_sz, const bool* noSortInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_SetEvt(<i>MediaItem_Take</i> take, <i>int </i>evtidx, <i>optional bool</i> selectedIn, <i>optional bool</i> mutedIn, <i>optional </i>ppqposIn, <i>optional </i>"msg", <i>optional bool</i> noSortIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_SetEvt(<i>MediaItem_Take</i> take, <i>integer</i> evtidx, <i>optional boolean</i> selectedIn, <i>optional boolean</i> mutedIn, <i>optional number </i>ppqposIn, <i>optional </i><i>string</i> msg, <i>optional boolean</i> noSortIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_SetEvt(<i>MediaItem_Take</i> take, <i>Int</i> evtidx, <i>const bool</i> selectedInOptional, <i>const bool</i> mutedInOptional, <i>const double</i> ppqposInOptional, <i>String</i> msgOptional, <i>Int</i> msgOptional_sz, <i>const bool</i> noSortInOptional)</code><br><br></div>
Set MIDI event properties. Properties passed as NULL will not be set.  set noSort if setting multiple events, then call MIDI_Sort when done.<br><br>
<a name="MIDI_SetItemExtents"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_SetItemExtents(MediaItem* item, double startQN, double endQN)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_SetItemExtents(<i>MediaItem</i> item, startQN, endQN)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_SetItemExtents(<i>MediaItem</i> item, <i>number</i> startQN, <i>number</i> endQN)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_SetItemExtents(<i>MediaItem</i> item, <i>Float</i> startQN, <i>Float</i> endQN)</code><br><br></div>
Set the start/end positions of a media item that contains a MIDI take.<br><br>
<a name="MIDI_SetNote"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_SetNote(MediaItem_Take* take, int noteidx, const bool* selectedInOptional, const bool* mutedInOptional, const double* startppqposInOptional, const double* endppqposInOptional, const int* chanInOptional, const int* pitchInOptional, const int* velInOptional, const bool* noSortInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_SetNote(<i>MediaItem_Take</i> take, <i>int </i>noteidx, <i>optional bool</i> selectedIn, <i>optional bool</i> mutedIn, <i>optional </i>startppqposIn, <i>optional </i>endppqposIn, <i>optional int</i> chanIn, <i>optional int</i> pitchIn, <i>optional int</i> velIn, <i>optional bool</i> noSortIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_SetNote(<i>MediaItem_Take</i> take, <i>integer</i> noteidx, <i>optional boolean</i> selectedIn, <i>optional boolean</i> mutedIn, <i>optional number </i>startppqposIn, <i>optional number </i>endppqposIn, <i>optional number</i> chanIn, <i>optional number</i> pitchIn, <i>optional number</i> velIn, <i>optional boolean</i> noSortIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_SetNote(<i>MediaItem_Take</i> take, <i>Int</i> noteidx, <i>const bool</i> selectedInOptional, <i>const bool</i> mutedInOptional, <i>const double</i> startppqposInOptional, <i>const double</i> endppqposInOptional, <i>const int</i> chanInOptional, <i>const int</i> pitchInOptional, <i>const int</i> velInOptional, <i>const bool</i> noSortInOptional)</code><br><br></div>
Set MIDI note properties. Properties passed as NULL (or negative values) will not be set. Set noSort if setting multiple events, then call MIDI_Sort when done. Setting multiple note start positions at once is done more safely by deleting and re-inserting the notes.<br><br>
<a name="MIDI_SetTextSysexEvt"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDI_SetTextSysexEvt(MediaItem_Take* take, int textsyxevtidx, const bool* selectedInOptional, const bool* mutedInOptional, const double* ppqposInOptional, const int* typeInOptional, const char* msgOptional, int msgOptional_sz, const bool* noSortInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDI_SetTextSysexEvt(<i>MediaItem_Take</i> take, <i>int </i>textsyxevtidx, <i>optional bool</i> selectedIn, <i>optional bool</i> mutedIn, <i>optional </i>ppqposIn, <i>optional int</i> typeIn, <i>optional </i>"msg", <i>optional bool</i> noSortIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_SetTextSysexEvt(<i>MediaItem_Take</i> take, <i>integer</i> textsyxevtidx, <i>optional boolean</i> selectedIn, <i>optional boolean</i> mutedIn, <i>optional number </i>ppqposIn, <i>optional number</i> typeIn, <i>optional </i><i>string</i> msg, <i>optional boolean</i> noSortIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDI_SetTextSysexEvt(<i>MediaItem_Take</i> take, <i>Int</i> textsyxevtidx, <i>const bool</i> selectedInOptional, <i>const bool</i> mutedInOptional, <i>const double</i> ppqposInOptional, <i>const int</i> typeInOptional, <i>String</i> msgOptional, <i>Int</i> msgOptional_sz, <i>const bool</i> noSortInOptional)</code><br><br></div>
Set MIDI text or sysex event properties. Properties passed as NULL will not be set. Allowable types are -1:sysex (msg should not include bounding F0..F7), 1-7:MIDI text event types. set noSort if setting multiple events, then call MIDI_Sort when done.<br><br>
<a name="MIDI_Sort"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void MIDI_Sort(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>MIDI_Sort(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDI_Sort(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_MIDI_Sort(<i>MediaItem_Take</i> take)</code><br><br></div>
Sort MIDI events after multiple calls to MIDI_SetNote, MIDI_SetCC, etc.<br><br>
<a name="MIDIEditor_GetActive"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>HWND MIDIEditor_GetActive()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>HWND</i>  MIDIEditor_GetActive()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>HWND</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDIEditor_GetActive()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>HWND</i>  RPR_MIDIEditor_GetActive()</code><br><br></div>
get a pointer to the focused MIDI editor window<br>
see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetMode">MIDIEditor_GetMode</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_OnCommand">MIDIEditor_OnCommand</a><br><br>
<a name="MIDIEditor_GetMode"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int MIDIEditor_GetMode(HWND midieditor)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> MIDIEditor_GetMode(<i>HWND</i> midieditor)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDIEditor_GetMode(<i>HWND</i> midieditor)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_MIDIEditor_GetMode(<i>HWND</i> midieditor)</code><br><br></div>
get the mode of a MIDI editor (0=piano roll, 1=event list, -1=invalid editor)<br>
see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetActive">MIDIEditor_GetActive</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_OnCommand">MIDIEditor_OnCommand</a><br><br>
<a name="MIDIEditor_GetSetting_int"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int MIDIEditor_GetSetting_int(HWND midieditor, const char* setting_desc)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> MIDIEditor_GetSetting_int(<i>HWND</i> midieditor, "setting_desc")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDIEditor_GetSetting_int(<i>HWND</i> midieditor, <i>string</i> setting_desc)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_MIDIEditor_GetSetting_int(<i>HWND</i> midieditor, <i>String</i> setting_desc)</code><br><br></div>
Get settings from a MIDI editor. setting_desc can be:<br>
snap_enabled: returns 0 or 1<br>
active_note_row: returns 0-127<br>
last_clicked_cc_lane: returns 0-127=CC, 0x100|(0-31)=14-bit CC, 0x200=velocity, 0x201=pitch, 0x202=program, 0x203=channel pressure, 0x204=bank/program select, 0x205=text, 0x206=sysex, 0x207=off velocity<br>
default_note_vel: returns 0-127<br>
default_note_chan: returns 0-15<br>
default_note_len: returns default length in MIDI ticks<br>
scale_enabled: returns 0-1<br>
scale_root: returns 0-12 (0=C)<br>
if setting_desc is unsupported, the function returns -1.<br>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetActive">MIDIEditor_GetActive</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetSetting_str">MIDIEditor_GetSetting_str</a><br>
<br><br>
<a name="MIDIEditor_GetSetting_str"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDIEditor_GetSetting_str(HWND midieditor, const char* setting_desc, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDIEditor_GetSetting_str(<i>HWND</i> midieditor, "setting_desc", #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDIEditor_GetSetting_str(<i>HWND</i> midieditor, <i>string</i> setting_desc, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>HWND</i> midieditor, <i>String</i> setting_desc, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_MIDIEditor_GetSetting_str(midieditor, setting_desc, buf, buf_sz)</code><br><br></div>
Get settings from a MIDI editor. setting_desc can be:<br>
last_clicked_cc_lane: returns text de<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>ion ("velocity", "pitch", etc)<br>
scale: returns the scale record, for example "102034050607" for a major scale<br>
if setting_desc is unsupported, the function returns false.<br>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetActive">MIDIEditor_GetActive</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetSetting_int">MIDIEditor_GetSetting_int</a><br>
<br><br>
<a name="MIDIEditor_GetTake"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem_Take* MIDIEditor_GetTake(HWND midieditor)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem_Take</i>  MIDIEditor_GetTake(<i>HWND</i> midieditor)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem_Take</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDIEditor_GetTake(<i>HWND</i> midieditor)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem_Take</i>  RPR_MIDIEditor_GetTake(<i>HWND</i> midieditor)</code><br><br></div>
get the take that is currently being edited in this MIDI editor<br><br>
<a name="MIDIEditor_LastFocused_OnCommand"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDIEditor_LastFocused_OnCommand(int command_id, bool islistviewcommand)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDIEditor_LastFocused_OnCommand(<i>int </i>command_id, <i>bool </i>islistviewcommand)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDIEditor_LastFocused_OnCommand(<i>integer</i> command_id, <i>boolean</i> islistviewcommand)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDIEditor_LastFocused_OnCommand(<i>Int</i> command_id, <i>Boolean</i> islistviewcommand)</code><br><br></div>
Send an action command to the last focused MIDI editor. Returns false if there is no MIDI editor open, or if the view mode (piano roll or event list) does not match the input.<br>
see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_OnCommand">MIDIEditor_OnCommand</a><br><br>
<a name="MIDIEditor_OnCommand"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MIDIEditor_OnCommand(HWND midieditor, int command_id)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MIDIEditor_OnCommand(<i>HWND</i> midieditor, <i>int </i>command_id)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MIDIEditor_OnCommand(<i>HWND</i> midieditor, <i>integer</i> command_id)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MIDIEditor_OnCommand(<i>HWND</i> midieditor, <i>Int</i> command_id)</code><br><br></div>
Send an action command to a MIDI editor. Returns false if the supplied MIDI editor pointer is not valid (not an open MIDI editor).<br>
see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_GetActive">MIDIEditor_GetActive</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#MIDIEditor_LastFocused_OnCommand">MIDIEditor_LastFocused_OnCommand</a><br><br>
<a name="mkpanstr"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void mkpanstr(char* strNeed64, double pan)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>mkpanstr(#strNeed64, pan)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>strNeed64 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.mkpanstr(<i>string </i>strNeed64, <i>number</i> pan)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> strNeed64, <i>Float</i> pan) = RPR_mkpanstr(strNeed64, pan)</code><br><br></div>
<a name="mkvolpanstr"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void mkvolpanstr(char* strNeed64, double vol, double pan)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>mkvolpanstr(#strNeed64, vol, pan)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>strNeed64 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.mkvolpanstr(<i>string </i>strNeed64, <i>number</i> vol, <i>number</i> pan)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> strNeed64, <i>Float</i> vol, <i>Float</i> pan) = RPR_mkvolpanstr(strNeed64, vol, pan)</code><br><br></div>
<a name="mkvolstr"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void mkvolstr(char* strNeed64, double vol)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>mkvolstr(#strNeed64, vol)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>strNeed64 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.mkvolstr(<i>string </i>strNeed64, <i>number</i> vol)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> strNeed64, <i>Float</i> vol) = RPR_mkvolstr(strNeed64, vol)</code><br><br></div>
<a name="MoveEditCursor"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void MoveEditCursor(double adjamt, bool dosel)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>MoveEditCursor(adjamt, <i>bool </i>dosel)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MoveEditCursor(<i>number</i> adjamt, <i>boolean</i> dosel)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_MoveEditCursor(<i>Float</i> adjamt, <i>Boolean</i> dosel)</code><br><br></div>
<a name="MoveMediaItemToTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool MoveMediaItemToTrack(MediaItem* item, MediaTrack* desttr)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> MoveMediaItemToTrack(<i>MediaItem</i> item, <i>MediaTrack</i> desttr)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MoveMediaItemToTrack(<i>MediaItem</i> item, <i>MediaTrack</i> desttr)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_MoveMediaItemToTrack(<i>MediaItem</i> item, <i>MediaTrack</i> desttr)</code><br><br></div>
returns TRUE if move succeeded<br><br>
<a name="MuteAllTracks"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void MuteAllTracks(bool mute)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>MuteAllTracks(<i>bool </i>mute)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.MuteAllTracks(<i>boolean</i> mute)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_MuteAllTracks(<i>Boolean</i> mute)</code><br><br></div>
<a name="my_getViewport"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void my_getViewport(RECT* r, const RECT* sr, bool wantWorkArea)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>my_getViewport(<i>int &amp;</i>r.left, <i>int &amp;</i>r.top, <i>int &amp;</i>r.right, <i>int &amp;</i>r.bot, <i>int</i> sr.left, <i>int</i> sr.top, <i>int</i> sr.right, <i>int</i> sr.bot, <i>bool </i>wantWorkArea)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.my_getViewport(<i>number</i>r.left, <i>number</i>r.top, <i>number</i>r.right, <i>number</i>r.bot, <i>number</i> sr.left, <i>number</i> sr.top, <i>number</i> sr.right, <i>number</i> sr.bot, <i>boolean</i> wantWorkArea)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_my_getViewport(<i>RECT</i> r, <i>const RECT</i> sr, <i>Boolean</i> wantWorkArea)</code><br><br></div>
<a name="NamedCommandLookup"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int NamedCommandLookup(const char* command_name)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> NamedCommandLookup("command_name")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.NamedCommandLookup(<i>string</i> command_name)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_NamedCommandLookup(<i>String</i> command_name)</code><br><br></div>
Get the command ID number for named command that was registered by an extension such as "_SWS_ABOUT" or "_113088d11ae641c193a2b7ede3041ad5" for a Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight> or a custom action.<br><br>
<a name="OnPauseButton"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void OnPauseButton()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>OnPauseButton()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.OnPauseButton()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_OnPauseButton()</code><br><br></div>
direct way to simulate pause button hit<br><br>
<a name="OnPauseButtonEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void OnPauseButtonEx(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>OnPauseButtonEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.OnPauseButtonEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_OnPauseButtonEx(<i>ReaProject</i> proj)</code><br><br></div>
direct way to simulate pause button hit<br><br>
<a name="OnPlayButton"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void OnPlayButton()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>OnPlayButton()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.OnPlayButton()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_OnPlayButton()</code><br><br></div>
direct way to simulate play button hit<br><br>
<a name="OnPlayButtonEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void OnPlayButtonEx(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>OnPlayButtonEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.OnPlayButtonEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_OnPlayButtonEx(<i>ReaProject</i> proj)</code><br><br></div>
direct way to simulate play button hit<br><br>
<a name="OnStopButton"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void OnStopButton()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>OnStopButton()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.OnStopButton()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_OnStopButton()</code><br><br></div>
direct way to simulate stop button hit<br><br>
<a name="OnStopButtonEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void OnStopButtonEx(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>OnStopButtonEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.OnStopButtonEx(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_OnStopButtonEx(<i>ReaProject</i> proj)</code><br><br></div>
direct way to simulate stop button hit<br><br>
<a name="OpenColorThemeFile"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool OpenColorThemeFile(const char* fn)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> OpenColorThemeFile("fn")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.OpenColorThemeFile(<i>string</i> fn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_OpenColorThemeFile(<i>String</i> fn)</code><br><br></div>
<a name="OpenMediaExplorer"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>HWND OpenMediaExplorer(const char* mediafn, bool play)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>HWND</i>  OpenMediaExplorer("mediafn", <i>bool </i>play)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>HWND</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.OpenMediaExplorer(<i>string</i> mediafn, <i>boolean</i> play)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>HWND</i>  RPR_OpenMediaExplorer(<i>String</i> mediafn, <i>Boolean</i> play)</code><br><br></div>
Opens mediafn in the Media Explorer, play=true will play the file immediately (or toggle playback if mediafn was already open), =false will just select it.<br><br>
<a name="OscLocalMessageToHost"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void OscLocalMessageToHost(const char* message, const double* valueInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>OscLocalMessageToHost("message", <i>optional </i>valueIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.OscLocalMessageToHost(<i>string</i> message, <i>optional number </i>valueIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_OscLocalMessageToHost(<i>String</i> message, <i>const double</i> valueInOptional)</code><br><br></div>
Send an OSC message directly to <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>. The value argument may be NULL. The message will be matched against the default OSC patterns. Only supported if control surface support was enabled when installing <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>.<br><br>
<a name="parse_timestr"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double parse_timestr(const char* buf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> parse_timestr("buf")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.parse_timestr(<i>string</i> buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_parse_timestr(<i>String</i> buf)</code><br><br></div>
Parse hh:mm:ss.sss time string, return time in seconds (or 0.0 on error). See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#parse_timestr_pos">parse_timestr_pos</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#parse_timestr_len">parse_timestr_len</a>.<br><br>
<a name="parse_timestr_len"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double parse_timestr_len(const char* buf, double offset, int modeoverride)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> parse_timestr_len("buf", offset, <i>int </i>modeoverride)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.parse_timestr_len(<i>string</i> buf, <i>number</i> offset, <i>integer</i> modeoverride)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_parse_timestr_len(<i>String</i> buf, <i>Float</i> offset, <i>Int</i> modeoverride)</code><br><br></div>
time formatting mode overrides: -1=proj default.<br>
0=time<br>
1=measures.beats + time<br>
2=measures.beats<br>
3=seconds<br>
4=samples<br>
5=h:m:s:f<br>
<br><br>
<a name="parse_timestr_pos"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double parse_timestr_pos(const char* buf, int modeoverride)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> parse_timestr_pos("buf", <i>int </i>modeoverride)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.parse_timestr_pos(<i>string</i> buf, <i>integer</i> modeoverride)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_parse_timestr_pos(<i>String</i> buf, <i>Int</i> modeoverride)</code><br><br></div>
Parse time string, time formatting mode overrides: -1=proj default.<br>
0=time<br>
1=measures.beats + time<br>
2=measures.beats<br>
3=seconds<br>
4=samples<br>
5=h:m:s:f<br>
<br><br>
<a name="parsepanstr"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double parsepanstr(const char* str)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> parsepanstr("str")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.parsepanstr(<i>string</i> str)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_parsepanstr(<i>String</i> str)</code><br><br></div>
<a name="PCM_Sink_Enum"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>unsigned int PCM_Sink_Enum(int idx, const char** descstrOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>uint </i> PCM_Sink_Enum(<i>int </i>idx, #descstr)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>string </i>descstr = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.PCM_Sink_Enum(<i>integer</i> idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Unknown</i>  RPR_PCM_Sink_Enum(<i>Int</i> idx, <i>String</i> descstrOut)</code><br><br></div>
<a name="PCM_Sink_GetExtension"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* PCM_Sink_GetExtension(const char* data, int data_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  PCM_Sink_GetExtension(#retval, "data")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.PCM_Sink_GetExtension(<i>string</i> data)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_PCM_Sink_GetExtension(<i>String</i> data, <i>Int</i> data_sz)</code><br><br></div>
<a name="PCM_Sink_ShowConfig"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>HWND PCM_Sink_ShowConfig(const char* cfg, int cfg_sz, HWND hwndParent)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>HWND</i>  PCM_Sink_ShowConfig("cfg", <i>HWND</i> hwndParent)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>HWND</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.PCM_Sink_ShowConfig(<i>string</i> cfg, <i>HWND</i> hwndParent)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>HWND</i>  RPR_PCM_Sink_ShowConfig(<i>String</i> cfg, <i>Int</i> cfg_sz, <i>HWND</i> hwndParent)</code><br><br></div>
<a name="PCM_Source_CreateFromFile"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>PCM_source* PCM_Source_CreateFromFile(const char* filename)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>PCM_source</i>  PCM_Source_CreateFromFile("filename")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>PCM_source</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.PCM_Source_CreateFromFile(<i>string</i> filename)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>PCM_source</i>  RPR_PCM_Source_CreateFromFile(<i>String</i> filename)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#PCM_Source_CreateFromFileEx">PCM_Source_CreateFromFileEx</a>.<br><br>
<a name="PCM_Source_CreateFromFileEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>PCM_source* PCM_Source_CreateFromFileEx(const char* filename, bool forcenoMidiImp)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>PCM_source</i>  PCM_Source_CreateFromFileEx("filename", <i>bool </i>forcenoMidiImp)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>PCM_source</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.PCM_Source_CreateFromFileEx(<i>string</i> filename, <i>boolean</i> forcenoMidiImp)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>PCM_source</i>  RPR_PCM_Source_CreateFromFileEx(<i>String</i> filename, <i>Boolean</i> forcenoMidiImp)</code><br><br></div>
Create a PCM_source from filename, and override pref of MIDI files being imported as in-project MIDI events.<br><br>
<a name="PCM_Source_CreateFromType"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>PCM_source* PCM_Source_CreateFromType(const char* sourcetype)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>PCM_source</i>  PCM_Source_CreateFromType("sourcetype")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>PCM_source</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.PCM_Source_CreateFromType(<i>string</i> sourcetype)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>PCM_source</i>  RPR_PCM_Source_CreateFromType(<i>String</i> sourcetype)</code><br><br></div>
Create a PCM_source from a "type" (use this if you're going to load its state via LoadState/ProjectStateContext).<br>
Valid types include "WAVE", "MIDI", or whatever plug-ins define as well.<br><br>
<a name="PCM_Source_Destroy"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void PCM_Source_Destroy(PCM_source* src)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>PCM_Source_Destroy(<i>PCM_source</i> src)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.PCM_Source_Destroy(<i>PCM_source</i> src)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_PCM_Source_Destroy(<i>PCM_source</i> src)</code><br><br></div>
Deletes a PCM_source -- be sure that you remove any project reference before deleting a source<br><br>
<a name="PCM_Source_GetPeaks"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int PCM_Source_GetPeaks(PCM_source* src, double peakrate, double starttime, int numchannels, int numsamplesperchannel, int want_extra_type, double* buf)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> PCM_Source_GetPeaks(<i>PCM_source</i> src, peakrate, starttime, <i>int </i>numchannels, <i>int </i>numsamplesperchannel, <i>int </i>want_extra_type, <i>buffer_ptr </i>buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.PCM_Source_GetPeaks(<i>PCM_source</i> src, <i>number</i> peakrate, <i>number</i> starttime, <i>integer</i> numchannels, <i>integer</i> numsamplesperchannel, <i>integer</i> want_extra_type, <i><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>PCM_source</i> src, <i>Float</i> peakrate, <i>Float</i> starttime, <i>Int</i> numchannels, <i>Int</i> numsamplesperchannel, <i>Int</i> want_extra_type, <i>Float</i> buf) = RPR_PCM_Source_GetPeaks(src, peakrate, starttime, numchannels, numsamplesperchannel, want_extra_type, buf)</code><br><br></div>
Gets block of peak samples to buf. Note that the peak samples are interleaved, but in two or three blocks (maximums, then minimums, then extra). Return value has 20 bits of returned sample count, then 4 bits of output_mode (0xf00000), then a bit to signify whether extra_type was available (0x1000000). extra_type can be 115 ('s') for spectral information, which will return peak samples as integers with the low 15 bits frequency, next 14 bits tonality.<br><br>
<a name="PCM_Source_GetSectionInfo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool PCM_Source_GetSectionInfo(PCM_source* src, double* offsOut, double* lenOut, bool* revOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> PCM_Source_GetSectionInfo(<i>PCM_source</i> src, <i>&amp;</i>offs, <i>&amp;</i>len, <i>bool &amp;</i>rev)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>offs, <i>number </i>len, <i>boolean </i>rev = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.PCM_Source_GetSectionInfo(<i>PCM_source</i> src)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>PCM_source</i> src, <i>Float</i> offsOut, <i>Float</i> lenOut, <i>Boolean</i> revOut) = RPR_PCM_Source_GetSectionInfo(src, offsOut, lenOut, revOut)</code><br><br></div>
If a section/reverse block, retrieves offset/len/reverse. return true if success<br><br>
<a name="PluginWantsAlwaysRunFx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void PluginWantsAlwaysRunFx(int amt)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>PluginWantsAlwaysRunFx(<i>int </i>amt)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.PluginWantsAlwaysRunFx(<i>integer</i> amt)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_PluginWantsAlwaysRunFx(<i>Int</i> amt)</code><br><br></div>
<a name="PreventUIRefresh"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void PreventUIRefresh(int prevent_count)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>PreventUIRefresh(<i>int </i>prevent_count)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.PreventUIRefresh(<i>integer</i> prevent_count)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_PreventUIRefresh(<i>Int</i> prevent_count)</code><br><br></div>
adds prevent_count to the UI refresh prevention state; always add then remove the same amount, or major disfunction will occur<br><br>
<a name="ReaScriptError"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>Error(const char* errmsg)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>Error("errmsg")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>Error(<i>string</i> errmsg)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>Error(<i>String</i> errmsg)</code><br><br></div>
Causes <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> to display the error message after the current Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight> finishes.<br><br>
<a name="RecursiveCreateDirectory"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int RecursiveCreateDirectory(const char* path, size_t ignored)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> RecursiveCreateDirectory("path", <i>size_t </i>ignored)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.RecursiveCreateDirectory(<i>string</i> path, <i>integer</i> ignored)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_RecursiveCreateDirectory(<i>String</i> path, <i>Unknown</i> ignored)</code><br><br></div>
returns positive value on success, 0 on failure.<br><br>
<a name="RefreshToolbar"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void RefreshToolbar(int command_id)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>RefreshToolbar(<i>int </i>command_id)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.RefreshToolbar(<i>integer</i> command_id)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_RefreshToolbar(<i>Int</i> command_id)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#RefreshToolbar2">RefreshToolbar2</a>.<br><br>
<a name="RefreshToolbar2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void RefreshToolbar2(int section_id, int command_id)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>RefreshToolbar2(<i>int </i>section_id, <i>int </i>command_id)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.RefreshToolbar2(<i>integer</i> section_id, <i>integer</i> command_id)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_RefreshToolbar2(<i>Int</i> section_id, <i>Int</i> command_id)</code><br><br></div>
Refresh the toolbar button states of a toggle action.<br><br>
<a name="relative_fn"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void relative_fn(const char* in, char* out, int out_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>relative_fn("in", #out)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>out = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.relative_fn(<i>string</i> in, <i>string </i>out)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> in, <i>String</i> out, <i>Int</i> out_sz) = RPR_relative_fn(in, out, out_sz)</code><br><br></div>
Makes a filename "in" relative to the current project, if any.<br><br>
<a name="RemoveTrackSend"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool RemoveTrackSend(MediaTrack* tr, int category, int sendidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> RemoveTrackSend(<i>MediaTrack</i> tr, <i>int </i>category, <i>int </i>sendidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.RemoveTrackSend(<i>MediaTrack</i> tr, <i>integer</i> category, <i>integer</i> sendidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_RemoveTrackSend(<i>MediaTrack</i> tr, <i>Int</i> category, <i>Int</i> sendidx)</code><br><br></div>
Remove a send/receive/hardware output, return true on success. category is &lt;0 for receives, 0=sends, &gt;0 for hardware outputs. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTrackSend">CreateTrackSend</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetSetTrackSendInfo">GetSetTrackSendInfo</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackSendInfo_Value">GetTrackSendInfo_Value</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetTrackSendInfo_Value">SetTrackSendInfo_Value</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackNumSends">GetTrackNumSends</a>.<br><br>
<a name="RenderFileSection"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool RenderFileSection(const char* source_filename, const char* target_filename, double start_percent, double end_percent, double playrate)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> RenderFileSection("source_filename", "target_filename", start_percent, end_percent, playrate)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.RenderFileSection(<i>string</i> source_filename, <i>string</i> target_filename, <i>number</i> start_percent, <i>number</i> end_percent, <i>number</i> playrate)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_RenderFileSection(<i>String</i> source_filename, <i>String</i> target_filename, <i>Float</i> start_percent, <i>Float</i> end_percent, <i>Float</i> playrate)</code><br><br></div>
Not available while playing back.<br><br>
<a name="ReorderSelectedTracks"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool ReorderSelectedTracks(int beforeTrackIdx, int makePrevFolder)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> ReorderSelectedTracks(<i>int </i>beforeTrackIdx, <i>int </i>makePrevFolder)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ReorderSelectedTracks(<i>integer</i> beforeTrackIdx, <i>integer</i> makePrevFolder)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_ReorderSelectedTracks(<i>Int</i> beforeTrackIdx, <i>Int</i> makePrevFolder)</code><br><br></div>
Moves all selected tracks to immediately above track specified by index beforeTrackIdx, returns false if no tracks were selected. makePrevFolder=0 for normal, 1 = as child of track preceding track specified by beforeTrackIdx, 2 = if track preceding track specified by beforeTrackIdx is last track in folder, extend folder<br><br>
<a name="Resample_EnumModes"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* Resample_EnumModes(int mode)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  Resample_EnumModes(#retval, <i>int </i>mode)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Resample_EnumModes(<i>integer</i> mode)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_Resample_EnumModes(<i>Int</i> mode)</code><br><br></div>
<a name="resolve_fn"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void resolve_fn(const char* in, char* out, int out_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>resolve_fn("in", #out)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>out = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.resolve_fn(<i>string</i> in, <i>string </i>out)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> in, <i>String</i> out, <i>Int</i> out_sz) = RPR_resolve_fn(in, out, out_sz)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#resolve_fn2">resolve_fn2</a>.<br><br>
<a name="resolve_fn2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void resolve_fn2(const char* in, char* out, int out_sz, const char* checkSubDirOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>resolve_fn2("in", #out, <i>optional </i>"checkSubDir")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>out = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.resolve_fn2(<i>string</i> in, <i>string </i>out, <i>optional </i><i>string</i> checkSubDir)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>String</i> in, <i>String</i> out, <i>Int</i> out_sz, <i>String</i> checkSubDirOptional) = RPR_resolve_fn2(in, out, out_sz, checkSubDirOptional)</code><br><br></div>
Resolves a filename "in" by using project settings etc. If no file found, out will be a copy of in.<br><br>
<a name="ReverseNamedCommandLookup"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* ReverseNamedCommandLookup(int command_id)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  ReverseNamedCommandLookup(#retval, <i>int </i>command_id)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ReverseNamedCommandLookup(<i>integer</i> command_id)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_ReverseNamedCommandLookup(<i>Int</i> command_id)</code><br><br></div>
Get the named command for the given command ID. The returned string will not start with '_' (e.g. it will return "SWS_ABOUT"), it will be NULL if command_id is a native action.<br><br>
<a name="ScaleFromEnvelopeMode"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double ScaleFromEnvelopeMode(int scaling_mode, double val)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> ScaleFromEnvelopeMode(<i>int </i>scaling_mode, val)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ScaleFromEnvelopeMode(<i>integer</i> scaling_mode, <i>number</i> val)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_ScaleFromEnvelopeMode(<i>Int</i> scaling_mode, <i>Float</i> val)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeScalingMode">GetEnvelopeScalingMode</a>.<br><br>
<a name="ScaleToEnvelopeMode"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double ScaleToEnvelopeMode(int scaling_mode, double val)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> ScaleToEnvelopeMode(<i>int </i>scaling_mode, val)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ScaleToEnvelopeMode(<i>integer</i> scaling_mode, <i>number</i> val)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_ScaleToEnvelopeMode(<i>Int</i> scaling_mode, <i>Float</i> val)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeScalingMode">GetEnvelopeScalingMode</a>.<br><br>
<a name="SelectAllMediaItems"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SelectAllMediaItems(ReaProject* proj, bool selected)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SelectAllMediaItems(<i>ReaProject</i> proj, <i>bool </i>selected)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SelectAllMediaItems(<i>ReaProject</i> proj, <i>boolean</i> selected)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SelectAllMediaItems(<i>ReaProject</i> proj, <i>Boolean</i> selected)</code><br><br></div>
<a name="SelectProjectInstance"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SelectProjectInstance(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SelectProjectInstance(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SelectProjectInstance(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SelectProjectInstance(<i>ReaProject</i> proj)</code><br><br></div>
<a name="SetActiveTake"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetActiveTake(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetActiveTake(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetActiveTake(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetActiveTake(<i>MediaItem_Take</i> take)</code><br><br></div>
set this take active in this media item<br><br>
<a name="SetAutomationMode"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetAutomationMode(int mode, bool onlySel)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetAutomationMode(<i>int </i>mode, <i>bool </i>onlySel)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetAutomationMode(<i>integer</i> mode, <i>boolean</i> onlySel)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetAutomationMode(<i>Int</i> mode, <i>Boolean</i> onlySel)</code><br><br></div>
sets all or selected tracks to mode.<br><br>
<a name="SetCurrentBPM"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetCurrentBPM(ReaProject* __proj, double bpm, bool wantUndo)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetCurrentBPM(<i>ReaProject</i> __proj, bpm, <i>bool </i>wantUndo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetCurrentBPM(<i>ReaProject</i> __proj, <i>number</i> bpm, <i>boolean</i> wantUndo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetCurrentBPM(<i>ReaProject</i> __proj, <i>Float</i> bpm, <i>Boolean</i> wantUndo)</code><br><br></div>
set current BPM in project, set wantUndo=true to add undo point<br><br>
<a name="SetCursorContext"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetCursorContext(int mode, TrackEnvelope* envInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetCursorContext(<i>int </i>mode, <i>TrackEnvelope</i> envIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetCursorContext(<i>integer</i> mode, <i>TrackEnvelope</i> envIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetCursorContext(<i>Int</i> mode, <i>TrackEnvelope</i> envInOptional)</code><br><br></div>
You must use this to change the focus programmatically. mode=0 to focus track panels, 1 to focus the arrange window, 2 to focus the arrange window and select env (or env==NULL to clear the current track/take envelope selection)<br><br>
<a name="SetEditCurPos"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetEditCurPos(double time, bool moveview, bool seekplay)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetEditCurPos(time, <i>bool </i>moveview, <i>bool </i>seekplay)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetEditCurPos(<i>number</i> time, <i>boolean</i> moveview, <i>boolean</i> seekplay)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetEditCurPos(<i>Float</i> time, <i>Boolean</i> moveview, <i>Boolean</i> seekplay)</code><br><br></div>
<a name="SetEditCurPos2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetEditCurPos2(ReaProject* proj, double time, bool moveview, bool seekplay)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetEditCurPos2(<i>ReaProject</i> proj, time, <i>bool </i>moveview, <i>bool </i>seekplay)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetEditCurPos2(<i>ReaProject</i> proj, <i>number</i> time, <i>boolean</i> moveview, <i>boolean</i> seekplay)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetEditCurPos2(<i>ReaProject</i> proj, <i>Float</i> time, <i>Boolean</i> moveview, <i>Boolean</i> seekplay)</code><br><br></div>
<a name="SetEnvelopePoint"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetEnvelopePoint(TrackEnvelope* envelope, int ptidx, double* timeInOptional, double* valueInOptional, int* shapeInOptional, double* tensionInOptional, bool* selectedInOptional, bool* noSortInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetEnvelopePoint(<i>TrackEnvelope</i> envelope, <i>int </i>ptidx, <i>optional </i>timeIn, <i>optional </i>valueIn, <i>optional int</i> shapeIn, <i>optional </i>tensionIn, <i>optional bool</i> selectedIn, <i>optional bool</i> noSortIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetEnvelopePoint(<i>TrackEnvelope</i> envelope, <i>integer</i> ptidx, <i>optional number </i>timeIn, <i>optional number </i>valueIn, <i>optional number</i> shapeIn, <i>optional number </i>tensionIn, <i>optional boolean</i> selectedIn, <i>optional boolean</i> noSortIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>TrackEnvelope</i> envelope, <i>Int</i> ptidx, <i>Float</i> timeInOptional, <i>Float</i> valueInOptional, <i>Int</i> shapeInOptional, <i>Float</i> tensionInOptional, <i>Boolean</i> selectedInOptional, <i>Boolean</i> noSortInOptional) = RPR_SetEnvelopePoint(envelope, ptidx, timeInOptional, valueInOptional, shapeInOptional, tensionInOptional, selectedInOptional, noSortInOptional)</code><br><br></div>
Set attributes of an envelope point. Values that are not supplied will be ignored. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePoint">GetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#InsertEnvelopePoint">InsertEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeScalingMode">GetEnvelopeScalingMode</a>.<br><br>
<a name="SetEnvelopePointEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetEnvelopePointEx(TrackEnvelope* envelope, int autoitem_idx, int ptidx, double* timeInOptional, double* valueInOptional, int* shapeInOptional, double* tensionInOptional, bool* selectedInOptional, bool* noSortInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetEnvelopePointEx(<i>TrackEnvelope</i> envelope, <i>int </i>autoitem_idx, <i>int </i>ptidx, <i>optional </i>timeIn, <i>optional </i>valueIn, <i>optional int</i> shapeIn, <i>optional </i>tensionIn, <i>optional bool</i> selectedIn, <i>optional bool</i> noSortIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetEnvelopePointEx(<i>TrackEnvelope</i> envelope, <i>integer</i> autoitem_idx, <i>integer</i> ptidx, <i>optional number </i>timeIn, <i>optional number </i>valueIn, <i>optional number</i> shapeIn, <i>optional number </i>tensionIn, <i>optional boolean</i> selectedIn, <i>optional boolean</i> noSortIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>TrackEnvelope</i> envelope, <i>Int</i> autoitem_idx, <i>Int</i> ptidx, <i>Float</i> timeInOptional, <i>Float</i> valueInOptional, <i>Int</i> shapeInOptional, <i>Float</i> tensionInOptional, <i>Boolean</i> selectedInOptional, <i>Boolean</i> noSortInOptional) = RPR_SetEnvelopePointEx(envelope, autoitem_idx, ptidx, timeInOptional, valueInOptional, shapeInOptional, tensionInOptional, selectedInOptional, noSortInOptional)</code><br><br></div>
Set attributes of an envelope point. Values that are not supplied will be ignored. If setting multiple points at once, set noSort=true, and call Envelope_SortPoints when done. Tautoitem_idx==-1 for the underlying envelope, 0 for the first automation item on the envelope, etc. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopePoint">GetEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#InsertEnvelopePoint">InsertEnvelopePoint</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetEnvelopeScalingMode">GetEnvelopeScalingMode</a>.<br><br>
<a name="SetEnvelopeStateChunk"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetEnvelopeStateChunk(TrackEnvelope* env, const char* str, bool isundoOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetEnvelopeStateChunk(<i>TrackEnvelope</i> env, "str", <i>bool </i>isundo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetEnvelopeStateChunk(<i>TrackEnvelope</i> env, <i>string</i> str, <i>boolean</i> isundo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetEnvelopeStateChunk(<i>TrackEnvelope</i> env, <i>String</i> str, <i>Boolean</i> isundoOptional)</code><br><br></div>
Sets the RPPXML state of an envelope, returns true if successful. Undo flag is a performance/caching hint.<br><br>
<a name="SetExtState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetExtState(const char* section, const char* key, const char* value, bool persist)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetExtState("section", "key", "value", <i>bool </i>persist)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetExtState(<i>string</i> section, <i>string</i> key, <i>string</i> value, <i>boolean</i> persist)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetExtState(<i>String</i> section, <i>String</i> key, <i>String</i> value, <i>Boolean</i> persist)</code><br><br></div>
Set the extended state value for a specific section and key. persist=true means the value should be stored and reloaded the next time <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> is opened. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetExtState">GetExtState</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#DeleteExtState">DeleteExtState</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#HasExtState">HasExtState</a>.<br><br>
<a name="SetGlobalAutomationOverride"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetGlobalAutomationOverride(int mode)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetGlobalAutomationOverride(<i>int </i>mode)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetGlobalAutomationOverride(<i>integer</i> mode)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetGlobalAutomationOverride(<i>Int</i> mode)</code><br><br></div>
mode: see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetGlobalAutomationOverride">GetGlobalAutomationOverride</a><br><br>
<a name="SetItemStateChunk"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetItemStateChunk(MediaItem* item, const char* str, bool isundoOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetItemStateChunk(<i>MediaItem</i> item, "str", <i>bool </i>isundo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetItemStateChunk(<i>MediaItem</i> item, <i>string</i> str, <i>boolean</i> isundo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetItemStateChunk(<i>MediaItem</i> item, <i>String</i> str, <i>Boolean</i> isundoOptional)</code><br><br></div>
Sets the RPPXML state of an item, returns true if successful. Undo flag is a performance/caching hint.<br><br>
<a name="SetMasterTrackVisibility"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int SetMasterTrackVisibility(int flag)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> SetMasterTrackVisibility(<i>int </i>flag)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetMasterTrackVisibility(<i>integer</i> flag)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_SetMasterTrackVisibility(<i>Int</i> flag)</code><br><br></div>
set &amp;1 to show the master track in the TCP, &amp;2 to show in the mixer. Returns the previous visibility state. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMasterTrackVisibility">GetMasterTrackVisibility</a>.<br><br>
<a name="SetMediaItemInfo_Value"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetMediaItemInfo_Value(MediaItem* item, const char* parmname, double newvalue)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetMediaItemInfo_Value(<i>MediaItem</i> item, "parmname", newvalue)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetMediaItemInfo_Value(<i>MediaItem</i> item, <i>string</i> parmname, <i>number</i> newvalue)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetMediaItemInfo_Value(<i>MediaItem</i> item, <i>String</i> parmname, <i>Float</i> newvalue)</code><br><br></div>
Set media item numerical-value attributes.<br>
B_MUTE : bool * to muted state<br>
B_LOOPSRC : bool * to loop source<br>
B_ALLTAKESPLAY : bool * to all takes play<br>
B_UISEL : bool * to ui selected<br>
C_BEATATTACHMODE : char * to one char of beat attached mode, -1=def, 0=time, 1=allbeats, 2=beatsosonly<br>
C_LOCK : char * to one char of lock flags (&amp;1 is locked, currently)<br>
D_VOL : double * of item volume (volume bar)<br>
D_POSITION : double * of item position (seconds)<br>
D_LENGTH : double * of item length (seconds)<br>
D_SNAPOFFSET : double * of item snap offset (seconds)<br>
D_FADEINLEN : double * of item fade in length (manual, seconds)<br>
D_FADEOUTLEN : double * of item fade out length (manual, seconds)<br>
D_FADEINDIR : double * of item fade in curve [-1; 1]<br>
D_FADEOUTDIR : double * of item fade out curve [-1; 1]<br>
D_FADEINLEN_AUTO : double * of item autofade in length (seconds, -1 for no autofade set)<br>
D_FADEOUTLEN_AUTO : double * of item autofade out length (seconds, -1 for no autofade set)<br>
C_FADEINSHAPE : int * to fadein shape, 0=linear, ...<br>
C_FADEOUTSHAPE : int * to fadeout shape<br>
I_GROUPID : int * to group ID (0 = no group)<br>
I_LASTY : int * to last y position in track (readonly)<br>
I_LASTH : int * to last height in track (readonly)<br>
I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x100000 (i.e. ColorToNative(r,g,b)|0x100000). If you do not |0x100000, then it will not be used (though will store the color anyway).<br>
I_CURTAKE : int * to active take<br>
IP_ITEMNUMBER : int, item number within the track (read-only, returns the item number directly)<br>
F_FREEMODE_Y : float * to free mode y position (0..1)<br>
F_FREEMODE_H : float * to free mode height (0..1)<br>
<br><br>
<a name="SetMediaItemLength"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetMediaItemLength(MediaItem* item, double length, bool refreshUI)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetMediaItemLength(<i>MediaItem</i> item, length, <i>bool </i>refreshUI)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetMediaItemLength(<i>MediaItem</i> item, <i>number</i> length, <i>boolean</i> refreshUI)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetMediaItemLength(<i>MediaItem</i> item, <i>Float</i> length, <i>Boolean</i> refreshUI)</code><br><br></div>
Redraws the screen only if refreshUI == true.<br>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#UpdateArrange">UpdateArrange</a>().<br><br>
<a name="SetMediaItemPosition"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetMediaItemPosition(MediaItem* item, double position, bool refreshUI)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetMediaItemPosition(<i>MediaItem</i> item, position, <i>bool </i>refreshUI)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetMediaItemPosition(<i>MediaItem</i> item, <i>number</i> position, <i>boolean</i> refreshUI)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetMediaItemPosition(<i>MediaItem</i> item, <i>Float</i> position, <i>Boolean</i> refreshUI)</code><br><br></div>
Redraws the screen only if refreshUI == true.<br>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#UpdateArrange">UpdateArrange</a>().<br><br>
<a name="SetMediaItemSelected"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetMediaItemSelected(MediaItem* item, bool selected)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetMediaItemSelected(<i>MediaItem</i> item, <i>bool </i>selected)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetMediaItemSelected(<i>MediaItem</i> item, <i>boolean</i> selected)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetMediaItemSelected(<i>MediaItem</i> item, <i>Boolean</i> selected)</code><br><br></div>
<a name="SetMediaItemTake_Source"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetMediaItemTake_Source(MediaItem_Take* take, PCM_source* source)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetMediaItemTake_Source(<i>MediaItem_Take</i> take, <i>PCM_source</i> source)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetMediaItemTake_Source(<i>MediaItem_Take</i> take, <i>PCM_source</i> source)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetMediaItemTake_Source(<i>MediaItem_Take</i> take, <i>PCM_source</i> source)</code><br><br></div>
Set media source of media item take. The old source will not be destroyed, it is the caller's responsibility to retrieve it and destroy it after. If source already exists in any project, it will be duplicated before being set. C/C++ code should not use this and instead use GetSetMediaItemTakeInfo() with P_SOURCE to manage ownership directly.<br><br>
<a name="SetMediaItemTakeInfo_Value"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetMediaItemTakeInfo_Value(MediaItem_Take* take, const char* parmname, double newvalue)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetMediaItemTakeInfo_Value(<i>MediaItem_Take</i> take, "parmname", newvalue)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetMediaItemTakeInfo_Value(<i>MediaItem_Take</i> take, <i>string</i> parmname, <i>number</i> newvalue)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetMediaItemTakeInfo_Value(<i>MediaItem_Take</i> take, <i>String</i> parmname, <i>Float</i> newvalue)</code><br><br></div>
Set media item take numerical-value attributes.<br>
D_STARTOFFS : double *, start offset in take of item<br>
D_VOL : double *, take volume<br>
D_PAN : double *, take pan<br>
D_PANLAW : double *, take pan law (-1.0=default, 0.5=-6dB, 1.0=+0dB, etc)<br>
D_PLAYRATE : double *, take playrate (1.0=normal, 2.0=doublespeed, etc)<br>
D_PITCH : double *, take pitch adjust (in semitones, 0.0=normal, +12 = one octave up, etc)<br>
B_PPITCH, bool *, preserve pitch when changing rate<br>
I_CHANMODE, int *, channel mode (0=normal, 1=revstereo, 2=downmix, 3=l, 4=r)<br>
I_PITCHMODE, int *, pitch shifter mode, -1=proj default, otherwise high word=shifter low word = parameter<br>
I_CUSTOMCOLOR : int *, custom color, OS dependent color|0x100000 (i.e. ColorToNative(r,g,b)|0x100000). If you do not |0x100000, then it will not be used (though will store the color anyway).<br>
IP_TAKENUMBER : int, take number within the item (read-only, returns the take number directly)<br>
<br><br>
<a name="SetMediaTrackInfo_Value"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetMediaTrackInfo_Value(MediaTrack* tr, const char* parmname, double newvalue)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetMediaTrackInfo_Value(<i>MediaTrack</i> tr, "parmname", newvalue)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetMediaTrackInfo_Value(<i>MediaTrack</i> tr, <i>string</i> parmname, <i>number</i> newvalue)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetMediaTrackInfo_Value(<i>MediaTrack</i> tr, <i>String</i> parmname, <i>Float</i> newvalue)</code><br><br></div>
Set track numerical-value attributes.<br>
B_MUTE : bool * : mute flag<br>
B_PHASE : bool * : invert track phase<br>
IP_TRACKNUMBER : int : track number (returns zero if not found, -1 for master track) (read-only, returns the int directly)<br>
I_SOLO : int * : 0=not soloed, 1=solo, 2=soloed in place. also: 5=solo-safe solo, 6=solo-safe soloed in place<br>
I_FXEN : int * : 0=fx bypassed, nonzero = fx active<br>
I_RECARM : int * : 0=not record armed, 1=record armed<br>
I_RECINPUT : int * : record input. &lt;0 = no input, 0..n = mono hardware input, 512+n = rearoute input, 1024 set for stereo input pair. 4096 set for MIDI input, if set, then low 5 bits represent channel (0=all, 1-16=only chan), then next 6 bits represent physical input (63=all, 62=VKB)<br>
I_RECMODE : int * : record mode (0=input, 1=stereo out, 2=none, 3=stereo out w/latcomp, 4=midi output, 5=mono out, 6=mono out w/ lat comp, 7=midi overdub, 8=midi replace<br>
I_RECMON : int * : record monitor (0=off, 1=normal, 2=not when playing (tapestyle))<br>
I_RECMONITEMS : int * : monitor items while recording (0=off, 1=on)<br>
I_AUTOMODE : int * : track automation mode (0=trim/off, 1=read, 2=touch, 3=write, 4=latch)<br>
I_NCHAN : int * : number of track channels, must be 2-64, even<br>
I_SELECTED : int * : track selected? 0 or 1<br>
I_WNDH : int * : current TCP window height (Read-only)<br>
I_FOLDERDEPTH : int * : folder depth change (0=normal, 1=track is a folder parent, -1=track is the last in the innermost folder, -2=track is the last in the innermost and next-innermost folders, etc<br>
I_FOLDERCOMPACT : int * : folder compacting (only valid on folders), 0=normal, 1=small, 2=tiny children<br>
I_MIDIHWOUT : int * : track midi hardware output index (&lt;0 for disabled, low 5 bits are which channels (0=all, 1-16), next 5 bits are output device index (0-31))<br>
I_PERFFLAGS : int * : track perf flags (&amp;1=no media buffering, &amp;2=no anticipative FX)<br>
I_CUSTOMCOLOR : int * : custom color, OS dependent color|0x100000 (i.e. ColorToNative(r,g,b)|0x100000). If you do not |0x100000, then it will not be used (though will store the color anyway).<br>
I_HEIGHTOVERRIDE : int * : custom height override for TCP window. 0 for none, otherwise size in pixels<br>
B_HEIGHTLOCK : bool * : track height lock (must set I_HEIGHTOVERRIDE before locking)<br>
D_VOL : double * : trim volume of track (0 (-inf)..1 (+0dB) .. 2 (+6dB) etc ..)<br>
D_PAN : double * : trim pan of track (-1..1)<br>
D_WIDTH : double * : width of track (-1..1)<br>
D_DUALPANL : double * : dualpan position 1 (-1..1), only if I_PANMODE==6<br>
D_DUALPANR : double * : dualpan position 2 (-1..1), only if I_PANMODE==6<br>
I_PANMODE : int * : pan mode (0 = classic 3.x, 3=new balance, 5=stereo pan, 6 = dual pan)<br>
D_PANLAW : double * : pan law of track. &lt;0 for project default, 1.0 for +0dB, etc<br>
P_ENV : read only, returns TrackEnvelope *, setNewValue=&lt;VOLENV, &lt;PANENV, etc<br>
B_SHOWINMIXER : bool * : show track panel in mixer -- do not use on master<br>
B_SHOWINTCP : bool * : show track panel in tcp -- do not use on master<br>
B_MAINSEND : bool * : track sends audio to parent<br>
C_MAINSEND_OFFS : char * : track send to parent channel offset<br>
B_FREEMODE : bool * : track free-mode enabled (requires UpdateTimeline() after changing etc)<br>
C_BEATATTACHMODE : char * : char * to one char of beat attached mode, -1=def, 0=time, 1=allbeats, 2=beatsposonly<br>
F_MCP_FXSEND_SCALE : float * : scale of fx+send area in MCP (0.0=smallest allowed, 1=max allowed)<br>
F_MCP_SENDRGN_SCALE : float * : scale of send area as proportion of the fx+send total area (0=min allow, 1=max)<br>
<br><br>
<a name="SetMIDIEditorGrid"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetMIDIEditorGrid(ReaProject* project, double division)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetMIDIEditorGrid(<i>ReaProject</i> project, division)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetMIDIEditorGrid(<i>ReaProject</i> project, <i>number</i> division)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetMIDIEditorGrid(<i>ReaProject</i> project, <i>Float</i> division)</code><br><br></div>
Set the MIDI editor grid division. 0.25=quarter note, 1.0/3.0=half note tripet, etc.<br><br>
<a name="SetMixerScroll"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaTrack* SetMixerScroll(MediaTrack* leftmosttrack)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaTrack</i>  SetMixerScroll(<i>MediaTrack</i> leftmosttrack)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaTrack</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetMixerScroll(<i>MediaTrack</i> leftmosttrack)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaTrack</i>  RPR_SetMixerScroll(<i>MediaTrack</i> leftmosttrack)</code><br><br></div>
Scroll the mixer so that leftmosttrack is the leftmost visible track. Returns the leftmost track after scrolling, which may be different from the passed-in track if there are not enough tracks to its right.<br><br>
<a name="SetMouseModifier"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetMouseModifier(const char* context, int modifier_flag, const char* action)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetMouseModifier("context", <i>int </i>modifier_flag, "action")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetMouseModifier(<i>string</i> context, <i>integer</i> modifier_flag, <i>string</i> action)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetMouseModifier(<i>String</i> context, <i>Int</i> modifier_flag, <i>String</i> action)</code><br><br></div>
Set the mouse modifier assignment for a specific modifier key assignment, in a specific context.<br>
Context is a string like "MM_CTX_ITEM". Find these strings by modifying an assignment in <br>
Preferences/Editing/Mouse Modifiers, then looking in <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>-mouse.ini.<br>
Modifier flag is a number from 0 to 15: add 1 for shift, 2 for control, 4 for alt, 8 for win.<br>
(macOS: add 1 for shift, 2 for command, 4 for opt, 8 for control.)<br>
For left-click and double-click contexts, the action can be any built-in command ID number<br>
or any custom action ID string. Find built-in command IDs in the <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> actions window<br>
(enable "show action IDs" in the context menu), and find custom action ID strings in <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>-kb.ini.<br>
For built-in mouse modifier behaviors, find action IDs (which will be low numbers)<br>
by modifying an assignment in Preferences/Editing/Mouse Modifiers, then looking in <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>-mouse.ini.<br>
Assigning an action of -1 will reset that mouse modifier behavior to factory default.<br>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMouseModifier">GetMouseModifier</a>.<br>
<br><br>
<a name="SetOnlyTrackSelected"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetOnlyTrackSelected(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetOnlyTrackSelected(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetOnlyTrackSelected(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetOnlyTrackSelected(<i>MediaTrack</i> track)</code><br><br></div>
Set exactly one track selected, deselect all others<br><br>
<a name="SetProjectGrid"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetProjectGrid(ReaProject* project, double division)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetProjectGrid(<i>ReaProject</i> project, division)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetProjectGrid(<i>ReaProject</i> project, <i>number</i> division)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetProjectGrid(<i>ReaProject</i> project, <i>Float</i> division)</code><br><br></div>
Set the arrange view grid division. 0.25=quarter note, 1.0/3.0=half note triplet, etc.<br><br>
<a name="SetProjectMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetProjectMarker(int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetProjectMarker(<i>int </i>markrgnindexnumber, <i>bool </i>isrgn, pos, rgnend, "name")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetProjectMarker(<i>integer</i> markrgnindexnumber, <i>boolean</i> isrgn, <i>number</i> pos, <i>number</i> rgnend, <i>string</i> name)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetProjectMarker(<i>Int</i> markrgnindexnumber, <i>Boolean</i> isrgn, <i>Float</i> pos, <i>Float</i> rgnend, <i>String</i> name)</code><br><br></div>
<a name="SetProjectMarker2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetProjectMarker2(ReaProject* proj, int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetProjectMarker2(<i>ReaProject</i> proj, <i>int </i>markrgnindexnumber, <i>bool </i>isrgn, pos, rgnend, "name")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetProjectMarker2(<i>ReaProject</i> proj, <i>integer</i> markrgnindexnumber, <i>boolean</i> isrgn, <i>number</i> pos, <i>number</i> rgnend, <i>string</i> name)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetProjectMarker2(<i>ReaProject</i> proj, <i>Int</i> markrgnindexnumber, <i>Boolean</i> isrgn, <i>Float</i> pos, <i>Float</i> rgnend, <i>String</i> name)</code><br><br></div>
<a name="SetProjectMarker3"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetProjectMarker3(ReaProject* proj, int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name, int color)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetProjectMarker3(<i>ReaProject</i> proj, <i>int </i>markrgnindexnumber, <i>bool </i>isrgn, pos, rgnend, "name", <i>int </i>color)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetProjectMarker3(<i>ReaProject</i> proj, <i>integer</i> markrgnindexnumber, <i>boolean</i> isrgn, <i>number</i> pos, <i>number</i> rgnend, <i>string</i> name, <i>integer</i> color)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetProjectMarker3(<i>ReaProject</i> proj, <i>Int</i> markrgnindexnumber, <i>Boolean</i> isrgn, <i>Float</i> pos, <i>Float</i> rgnend, <i>String</i> name, <i>Int</i> color)</code><br><br></div>
<a name="SetProjectMarker4"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetProjectMarker4(ReaProject* proj, int markrgnindexnumber, bool isrgn, double pos, double rgnend, const char* name, int color, int flags)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetProjectMarker4(<i>ReaProject</i> proj, <i>int </i>markrgnindexnumber, <i>bool </i>isrgn, pos, rgnend, "name", <i>int </i>color, <i>int </i>flags)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetProjectMarker4(<i>ReaProject</i> proj, <i>integer</i> markrgnindexnumber, <i>boolean</i> isrgn, <i>number</i> pos, <i>number</i> rgnend, <i>string</i> name, <i>integer</i> color, <i>integer</i> flags)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetProjectMarker4(<i>ReaProject</i> proj, <i>Int</i> markrgnindexnumber, <i>Boolean</i> isrgn, <i>Float</i> pos, <i>Float</i> rgnend, <i>String</i> name, <i>Int</i> color, <i>Int</i> flags)</code><br><br></div>
color should be 0 to not change, or ColorToNative(r,g,b)|0x1000000, flags&amp;1 to clear name<br><br>
<a name="SetProjectMarkerByIndex"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetProjectMarkerByIndex(ReaProject* proj, int markrgnidx, bool isrgn, double pos, double rgnend, int IDnumber, const char* name, int color)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetProjectMarkerByIndex(<i>ReaProject</i> proj, <i>int </i>markrgnidx, <i>bool </i>isrgn, pos, rgnend, <i>int </i>IDnumber, "name", <i>int </i>color)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetProjectMarkerByIndex(<i>ReaProject</i> proj, <i>integer</i> markrgnidx, <i>boolean</i> isrgn, <i>number</i> pos, <i>number</i> rgnend, <i>integer</i> IDnumber, <i>string</i> name, <i>integer</i> color)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetProjectMarkerByIndex(<i>ReaProject</i> proj, <i>Int</i> markrgnidx, <i>Boolean</i> isrgn, <i>Float</i> pos, <i>Float</i> rgnend, <i>Int</i> IDnumber, <i>String</i> name, <i>Int</i> color)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjectMarkerByIndex2">SetProjectMarkerByIndex2</a>.<br><br>
<a name="SetProjectMarkerByIndex2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetProjectMarkerByIndex2(ReaProject* proj, int markrgnidx, bool isrgn, double pos, double rgnend, int IDnumber, const char* name, int color, int flags)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetProjectMarkerByIndex2(<i>ReaProject</i> proj, <i>int </i>markrgnidx, <i>bool </i>isrgn, pos, rgnend, <i>int </i>IDnumber, "name", <i>int </i>color, <i>int </i>flags)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetProjectMarkerByIndex2(<i>ReaProject</i> proj, <i>integer</i> markrgnidx, <i>boolean</i> isrgn, <i>number</i> pos, <i>number</i> rgnend, <i>integer</i> IDnumber, <i>string</i> name, <i>integer</i> color, <i>integer</i> flags)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetProjectMarkerByIndex2(<i>ReaProject</i> proj, <i>Int</i> markrgnidx, <i>Boolean</i> isrgn, <i>Float</i> pos, <i>Float</i> rgnend, <i>Int</i> IDnumber, <i>String</i> name, <i>Int</i> color, <i>Int</i> flags)</code><br><br></div>
Differs from SetProjectMarker4 in that markrgnidx is 0 for the first marker/region, 1 for the next, etc (see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumProjectMarkers3">EnumProjectMarkers3</a>), rather than representing the displayed marker/region ID number (see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#SetProjectMarker3">SetProjectMarker3</a>). Function will fail if attempting to set a duplicate ID number for a region (duplicate ID numbers for markers are OK). , flags&amp;1 to clear name.<br><br>
<a name="SetProjExtState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int SetProjExtState(ReaProject* proj, const char* extname, const char* key, const char* value)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> SetProjExtState(<i>ReaProject</i> proj, "extname", "key", "value")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetProjExtState(<i>ReaProject</i> proj, <i>string</i> extname, <i>string</i> key, <i>string</i> value)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_SetProjExtState(<i>ReaProject</i> proj, <i>String</i> extname, <i>String</i> key, <i>String</i> value)</code><br><br></div>
Save a key/value pair for a specific extension, to be restored the next time this specific project is loaded. Typically extname will be the name of a rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> or extension section. If key is NULL or "", all extended data for that extname will be deleted.  If val is NULL or "", the data previously associated with that key will be deleted. Returns the size of the state for this extname. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetProjExtState">GetProjExtState</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#EnumProjExtState">EnumProjExtState</a>.<br><br>
<a name="SetRegionRenderMatrix"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetRegionRenderMatrix(ReaProject* proj, int regionindex, MediaTrack* track, int addorremove)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetRegionRenderMatrix(<i>ReaProject</i> proj, <i>int </i>regionindex, <i>MediaTrack</i> track, <i>int </i>addorremove)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetRegionRenderMatrix(<i>ReaProject</i> proj, <i>integer</i> regionindex, <i>MediaTrack</i> track, <i>integer</i> addorremove)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetRegionRenderMatrix(<i>ReaProject</i> proj, <i>Int</i> regionindex, <i>MediaTrack</i> track, <i>Int</i> addorremove)</code><br><br></div>
Add (addorremove &gt; 0) or remove (addorremove &lt; 0) a track from this region when using the region render matrix.<br><br>
<a name="SetTakeStretchMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int SetTakeStretchMarker(MediaItem_Take* take, int idx, double pos, const double* srcposInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> SetTakeStretchMarker(<i>MediaItem_Take</i> take, <i>int </i>idx, pos, <i>optional </i>srcposIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTakeStretchMarker(<i>MediaItem_Take</i> take, <i>integer</i> idx, <i>number</i> pos, <i>optional number </i>srcposIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_SetTakeStretchMarker(<i>MediaItem_Take</i> take, <i>Int</i> idx, <i>Float</i> pos, <i>const double</i> srcposInOptional)</code><br><br></div>
Adds or updates a stretch marker. If idx&lt;0, stretch marker will be added. If idx&gt;=0, stretch marker will be updated. When adding, if srcposInOptional is omitted, source position will be auto-calculated. When updating a stretch marker, if srcposInOptional is omitted, srcpos will not be modified. Position/srcposition values will be constrained to nearby stretch markers. Returns index of stretch marker, or -1 if did not insert (or marker already existed at time).<br><br>
<a name="SetTakeStretchMarkerSlope"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetTakeStretchMarkerSlope(MediaItem_Take* take, int idx, double slope)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetTakeStretchMarkerSlope(<i>MediaItem_Take</i> take, <i>int </i>idx, slope)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTakeStretchMarkerSlope(<i>MediaItem_Take</i> take, <i>integer</i> idx, <i>number</i> slope)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetTakeStretchMarkerSlope(<i>MediaItem_Take</i> take, <i>Int</i> idx, <i>Float</i> slope)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTakeStretchMarkerSlope">GetTakeStretchMarkerSlope</a><br><br>
<a name="SetTempoTimeSigMarker"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetTempoTimeSigMarker(ReaProject* proj, int ptidx, double timepos, int measurepos, double beatpos, double bpm, int timesig_num, int timesig_denom, bool lineartempo)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetTempoTimeSigMarker(<i>ReaProject</i> proj, <i>int </i>ptidx, timepos, <i>int </i>measurepos, beatpos, bpm, <i>int </i>timesig_num, <i>int </i>timesig_denom, <i>bool </i>lineartempo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTempoTimeSigMarker(<i>ReaProject</i> proj, <i>integer</i> ptidx, <i>number</i> timepos, <i>integer</i> measurepos, <i>number</i> beatpos, <i>number</i> bpm, <i>integer</i> timesig_num, <i>integer</i> timesig_denom, <i>boolean</i> lineartempo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetTempoTimeSigMarker(<i>ReaProject</i> proj, <i>Int</i> ptidx, <i>Float</i> timepos, <i>Int</i> measurepos, <i>Float</i> beatpos, <i>Float</i> bpm, <i>Int</i> timesig_num, <i>Int</i> timesig_denom, <i>Boolean</i> lineartempo)</code><br><br></div>
Set parameters of a tempo/time signature marker. Provide either timepos (with measurepos=-1, beatpos=-1), or measurepos and beatpos (with timepos=-1). If timesig_num and timesig_denom are zero, the previous time signature will be used. ptidx=-1 will insert a new tempo/time signature marker. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CountTempoTimeSigMarkers">CountTempoTimeSigMarkers</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTempoTimeSigMarker">GetTempoTimeSigMarker</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#AddTempoTimeSigMarker">AddTempoTimeSigMarker</a>.<br><br>
<a name="SetToggleCommandState"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetToggleCommandState(int section_id, int command_id, int state)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetToggleCommandState(<i>int </i>section_id, <i>int </i>command_id, <i>int </i>state)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetToggleCommandState(<i>integer</i> section_id, <i>integer</i> command_id, <i>integer</i> state)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetToggleCommandState(<i>Int</i> section_id, <i>Int</i> command_id, <i>Int</i> state)</code><br><br></div>
Updates the toggle state of an action, returns true if succeeded. Only Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s can have their toggle states changed programmatically. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#RefreshToolbar2">RefreshToolbar2</a>.<br><br>
<a name="SetTrackAutomationMode"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetTrackAutomationMode(MediaTrack* tr, int mode)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetTrackAutomationMode(<i>MediaTrack</i> tr, <i>int </i>mode)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTrackAutomationMode(<i>MediaTrack</i> tr, <i>integer</i> mode)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetTrackAutomationMode(<i>MediaTrack</i> tr, <i>Int</i> mode)</code><br><br></div>
<a name="SetTrackColor"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetTrackColor(MediaTrack* track, int color)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetTrackColor(<i>MediaTrack</i> track, <i>int </i>color)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTrackColor(<i>MediaTrack</i> track, <i>integer</i> color)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetTrackColor(<i>MediaTrack</i> track, <i>Int</i> color)</code><br><br></div>
Set the custom track color, color is OS dependent (i.e. ColorToNative(r,g,b).<br><br>
<a name="SetTrackMIDILyrics"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetTrackMIDILyrics(MediaTrack* track, int flag, const char* str)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetTrackMIDILyrics(<i>MediaTrack</i> track, <i>int </i>flag, "str")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTrackMIDILyrics(<i>MediaTrack</i> track, <i>integer</i> flag, <i>string</i> str)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetTrackMIDILyrics(<i>MediaTrack</i> track, <i>Int</i> flag, <i>String</i> str)</code><br><br></div>
Set all MIDI lyrics on the track. Lyrics will be stuffed into any MIDI items found in range. Flag is unused at present. str is passed in as beat position, tab, text, tab (example with flag=2: "1.1.2\tLyric for measure 1 beat 2\t.1.1\tLyric for measure 2 beat 1	"). See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackMIDILyrics">GetTrackMIDILyrics</a><br><br>
<a name="SetTrackMIDINoteName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetTrackMIDINoteName(int track, int pitch, int chan, const char* name)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetTrackMIDINoteName(<i>int </i>track, <i>int </i>pitch, <i>int </i>chan, "name")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTrackMIDINoteName(<i>integer</i> track, <i>integer</i> pitch, <i>integer</i> chan, <i>string</i> name)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetTrackMIDINoteName(<i>Int</i> track, <i>Int</i> pitch, <i>Int</i> chan, <i>String</i> name)</code><br><br></div>
channel &lt; 0 assigns these note names to all channels.<br><br>
<a name="SetTrackMIDINoteNameEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetTrackMIDINoteNameEx(ReaProject* proj, MediaTrack* track, int pitch, int chan, const char* name)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetTrackMIDINoteNameEx(<i>ReaProject</i> proj, <i>MediaTrack</i> track, <i>int </i>pitch, <i>int </i>chan, "name")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTrackMIDINoteNameEx(<i>ReaProject</i> proj, <i>MediaTrack</i> track, <i>integer</i> pitch, <i>integer</i> chan, <i>string</i> name)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetTrackMIDINoteNameEx(<i>ReaProject</i> proj, <i>MediaTrack</i> track, <i>Int</i> pitch, <i>Int</i> chan, <i>String</i> name)</code><br><br></div>
channel &lt; 0 assigns note name to all channels. pitch 128 assigns name for CC0, pitch 129 for CC1, etc.<br><br>
<a name="SetTrackSelected"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SetTrackSelected(MediaTrack* track, bool selected)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SetTrackSelected(<i>MediaTrack</i> track, <i>bool </i>selected)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTrackSelected(<i>MediaTrack</i> track, <i>boolean</i> selected)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SetTrackSelected(<i>MediaTrack</i> track, <i>Boolean</i> selected)</code><br><br></div>
<a name="SetTrackSendInfo_Value"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetTrackSendInfo_Value(MediaTrack* tr, int category, int sendidx, const char* parmname, double newvalue)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetTrackSendInfo_Value(<i>MediaTrack</i> tr, <i>int </i>category, <i>int </i>sendidx, "parmname", newvalue)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTrackSendInfo_Value(<i>MediaTrack</i> tr, <i>integer</i> category, <i>integer</i> sendidx, <i>string</i> parmname, <i>number</i> newvalue)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetTrackSendInfo_Value(<i>MediaTrack</i> tr, <i>Int</i> category, <i>Int</i> sendidx, <i>String</i> parmname, <i>Float</i> newvalue)</code><br><br></div>
Set send/receive/hardware output numerical-value attributes, return true on success.<br>
category is &lt;0 for receives, 0=sends, &gt;0 for hardware outputs<br>
parameter names:<br>
B_MUTE : returns bool *<br>
B_PHASE : returns bool *, true to flip phase<br>
B_MONO : returns bool *<br>
D_VOL : returns double *, 1.0 = +0dB etc<br>
D_PAN : returns double *, -1..+1<br>
D_PANLAW : returns double *,1.0=+0.0db, 0.5=-6dB, -1.0 = projdef etc<br>
I_SENDMODE : returns int *, 0=post-fader, 1=pre-fx, 2=post-fx (deprecated), 3=post-fx<br>
I_AUTOMODE : returns int * : automation mode (-1=use track automode, 0=trim/off, 1=read, 2=touch, 3=write, 4=latch)<br>
I_SRCCHAN : returns int *, index,&amp;1024=mono, -1 for none<br>
I_DSTCHAN : returns int *, index, &amp;1024=mono, otherwise stereo pair, hwout:&amp;512=rearoute<br>
I_MIDIFLAGS : returns int *, low 5 bits=source channel 0=all, 1-16, next 5 bits=dest channel, 0=orig, 1-16=chanSee <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#CreateTrackSend">CreateTrackSend</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#RemoveTrackSend">RemoveTrackSend</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetTrackNumSends">GetTrackNumSends</a>.<br><br>
<a name="SetTrackSendUIPan"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetTrackSendUIPan(MediaTrack* track, int send_idx, double pan, int isend)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetTrackSendUIPan(<i>MediaTrack</i> track, <i>int </i>send_idx, pan, <i>int </i>isend)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTrackSendUIPan(<i>MediaTrack</i> track, <i>integer</i> send_idx, <i>number</i> pan, <i>integer</i> isend)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetTrackSendUIPan(<i>MediaTrack</i> track, <i>Int</i> send_idx, <i>Float</i> pan, <i>Int</i> isend)</code><br><br></div>
send_idx&lt;0 for receives, &gt;=0 for hw ouputs, &gt;=nb_of_hw_ouputs for sends. isend=1 for end of edit, -1 for an instant edit (such as reset), 0 for normal tweak.<br><br>
<a name="SetTrackSendUIVol"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetTrackSendUIVol(MediaTrack* track, int send_idx, double vol, int isend)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetTrackSendUIVol(<i>MediaTrack</i> track, <i>int </i>send_idx, vol, <i>int </i>isend)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTrackSendUIVol(<i>MediaTrack</i> track, <i>integer</i> send_idx, <i>number</i> vol, <i>integer</i> isend)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetTrackSendUIVol(<i>MediaTrack</i> track, <i>Int</i> send_idx, <i>Float</i> vol, <i>Int</i> isend)</code><br><br></div>
send_idx&lt;0 for receives, &gt;=0 for hw ouputs, &gt;=nb_of_hw_ouputs for sends. isend=1 for end of edit, -1 for an instant edit (such as reset), 0 for normal tweak.<br><br>
<a name="SetTrackStateChunk"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool SetTrackStateChunk(MediaTrack* track, const char* str, bool isundoOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> SetTrackStateChunk(<i>MediaTrack</i> track, "str", <i>bool </i>isundo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SetTrackStateChunk(<i>MediaTrack</i> track, <i>string</i> str, <i>boolean</i> isundo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_SetTrackStateChunk(<i>MediaTrack</i> track, <i>String</i> str, <i>Boolean</i> isundoOptional)</code><br><br></div>
Sets the RPPXML state of a track, returns true if successful. Undo flag is a performance/caching hint.<br><br>
<a name="ShowActionList"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void ShowActionList(KbdSectionInfo* caller, HWND callerWnd)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>ShowActionList(<i>KbdSectionInfo</i> caller, <i>HWND</i> callerWnd)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ShowActionList(<i>KbdSectionInfo</i> caller, <i>HWND</i> callerWnd)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_ShowActionList(<i>KbdSectionInfo</i> caller, <i>HWND</i> callerWnd)</code><br><br></div>
<a name="ShowConsoleMsg"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void ShowConsoleMsg(const char* msg)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>ShowConsoleMsg("msg")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ShowConsoleMsg(<i>string</i> msg)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_ShowConsoleMsg(<i>String</i> msg)</code><br><br></div>
Show a message to the user (also useful for debugging). Send "\n" for newline, "" to clear the console. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ClearConsole">ClearConsole</a><br><br>
<a name="ShowMessageBox"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int ShowMessageBox(const char* msg, const char* title, int type)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> ShowMessageBox("msg", "title", <i>int </i>type)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ShowMessageBox(<i>string</i> msg, <i>string</i> title, <i>integer</i> type)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_ShowMessageBox(<i>String</i> msg, <i>String</i> title, <i>Int</i> type)</code><br><br></div>
type 0=OK,1=OKCANCEL,2=ABORTRETRYIGNORE,3=YESNOCANCEL,4=YESNO,5=RETRYCANCEL : ret 1=OK,2=CANCEL,3=ABORT,4=RETRY,5=IGNORE,6=YES,7=NO<br><br>
<a name="ShowPopupMenu"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void ShowPopupMenu(const char* name, int x, int y, HWND hwndParentOptional, void* ctxOptional, int ctx2Optional, int ctx3Optional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>ShowPopupMenu("name", <i>int </i>x, <i>int </i>y, <i>HWND</i> hwndParent, <i>void*</i> ctx, <i>int </i>ctx2, <i>int </i>ctx3)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ShowPopupMenu(<i>string</i> name, <i>integer</i> x, <i>integer</i> y, <i>HWND</i> hwndParent, <i>identifier</i> ctx, <i>integer</i> ctx2, <i>integer</i> ctx3)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_ShowPopupMenu(<i>String</i> name, <i>Int</i> x, <i>Int</i> y, <i>HWND</i> hwndParentOptional, <i>void</i> ctxOptional, <i>Int</i> ctx2Optional, <i>Int</i> ctx3Optional)</code><br><br></div>
shows a context menu, valid names include: track_input, track_panel, track_area, track_routing, item, ruler, envelope, envelope_point, envelope_item. ctxOptional can be a track pointer for track_*, item pointer for item* (but is optional). for envelope_point, ctx2Optional has point index, ctx3Optional has item index (0=main envelope, 1=first AI). for envelope_item, ctx2Optional has AI index (1=first AI)<br><br>
<a name="SLIDER2DB"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double SLIDER2DB(double y)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> SLIDER2DB(y)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SLIDER2DB(<i>number</i> y)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_SLIDER2DB(<i>Float</i> y)</code><br><br></div>
<a name="SnapToGrid"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double SnapToGrid(ReaProject* project, double time_pos)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> SnapToGrid(<i>ReaProject</i> project, time_pos)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SnapToGrid(<i>ReaProject</i> project, <i>number</i> time_pos)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_SnapToGrid(<i>ReaProject</i> project, <i>Float</i> time_pos)</code><br><br></div>
<a name="SoloAllTracks"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void SoloAllTracks(int solo)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>SoloAllTracks(<i>int </i>solo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SoloAllTracks(<i>integer</i> solo)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_SoloAllTracks(<i>Int</i> solo)</code><br><br></div>
solo=2 for SIP<br><br>
<a name="Splash_GetWnd"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>HWND Splash_GetWnd()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>HWND</i>  Splash_GetWnd()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>HWND</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Splash_GetWnd()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>HWND</i>  RPR_Splash_GetWnd()</code><br><br></div>
gets the splash window, in case you want to display a message over it. Returns NULL when the sphah window is not displayed.<br><br>
<a name="SplitMediaItem"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>MediaItem* SplitMediaItem(MediaItem* item, double position)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>MediaItem</i>  SplitMediaItem(<i>MediaItem</i> item, position)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>MediaItem</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.SplitMediaItem(<i>MediaItem</i> item, <i>number</i> position)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>MediaItem</i>  RPR_SplitMediaItem(<i>MediaItem</i> item, <i>Float</i> position)</code><br><br></div>
the original item becomes the left-hand split, the function returns the right-hand split (or NULL if the split failed)<br><br>
<a name="stringToGuid"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void stringToGuid(const char* str, GUID* g)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>stringToGuid("str", #gGUID)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>gGUID = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.stringToGuid(<i>string</i> str, <i>string </i>gGUID)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_stringToGuid(<i>String</i> str, <i>GUID</i> g)</code><br><br></div>
<a name="StuffMIDIMessage"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void StuffMIDIMessage(int mode, int msg1, int msg2, int msg3)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>StuffMIDIMessage(<i>int </i>mode, <i>int </i>msg1, <i>int </i>msg2, <i>int </i>msg3)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.StuffMIDIMessage(<i>integer</i> mode, <i>integer</i> msg1, <i>integer</i> msg2, <i>integer</i> msg3)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_StuffMIDIMessage(<i>Int</i> mode, <i>Int</i> msg1, <i>Int</i> msg2, <i>Int</i> msg3)</code><br><br></div>
Stuffs a 3 byte MIDI message into either the Virtual MIDI Keyboard queue, or the MIDI-as-control input queue, or sends to a MIDI hardware output. mode=0 for VKB, 1 for control (actions map etc), 2 for VKB-on-current-channel; 16 for external MIDI device 0, 17 for external MIDI device 1, etc; see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetNumMIDIOutputs">GetNumMIDIOutputs</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#GetMIDIOutputName">GetMIDIOutputName</a>.<br><br>
<a name="TakeFX_AddByName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TakeFX_AddByName(MediaItem_Take* take, const char* fxname, int instantiate)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TakeFX_AddByName(<i>MediaItem_Take</i> take, "fxname", <i>int </i>instantiate)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_AddByName(<i>MediaItem_Take</i> take, <i>string</i> fxname, <i>integer</i> instantiate)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TakeFX_AddByName(<i>MediaItem_Take</i> take, <i>String</i> fxname, <i>Int</i> instantiate)</code><br><br></div>
Adds or queries the position of a named FX in a take. Specify a negative value for instantiate to always create a new effect, 0 to only query the first instance of an effect, or a positive value to add an instance if one is not found.<br><br>
<a name="TakeFX_CopyToTake"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TakeFX_CopyToTake(MediaItem_Take* src_take, int src_fx, MediaItem_Take* dest_take, int dest_fx, bool is_move)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TakeFX_CopyToTake(<i>MediaItem_Take</i> src_take, <i>int </i>src_fx, <i>MediaItem_Take</i> dest_take, <i>int </i>dest_fx, <i>bool </i>is_move)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_CopyToTake(<i>MediaItem_Take</i> src_take, <i>integer</i> src_fx, <i>MediaItem_Take</i> dest_take, <i>integer</i> dest_fx, <i>boolean</i> is_move)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TakeFX_CopyToTake(<i>MediaItem_Take</i> src_take, <i>Int</i> src_fx, <i>MediaItem_Take</i> dest_take, <i>Int</i> dest_fx, <i>Boolean</i> is_move)</code><br><br></div>
Copies (or moves) FX from src_take to dest_take. Can be used with src_track=dest_track to reorder. <br><br>
<a name="TakeFX_CopyToTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TakeFX_CopyToTrack(MediaItem_Take* src_take, int src_fx, MediaTrack* dest_track, int dest_fx, bool is_move)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TakeFX_CopyToTrack(<i>MediaItem_Take</i> src_take, <i>int </i>src_fx, <i>MediaTrack</i> dest_track, <i>int </i>dest_fx, <i>bool </i>is_move)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_CopyToTrack(<i>MediaItem_Take</i> src_take, <i>integer</i> src_fx, <i>MediaTrack</i> dest_track, <i>integer</i> dest_fx, <i>boolean</i> is_move)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TakeFX_CopyToTrack(<i>MediaItem_Take</i> src_take, <i>Int</i> src_fx, <i>MediaTrack</i> dest_track, <i>Int</i> dest_fx, <i>Boolean</i> is_move)</code><br><br></div>
Copies (or moves) FX from src_take to dest_track. dest_fx can have 0x1000000 set to reference input FX. <br><br>
<a name="TakeFX_Delete"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_Delete(MediaItem_Take* take, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_Delete(<i>MediaItem_Take</i> take, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_Delete(<i>MediaItem_Take</i> take, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_Delete(<i>MediaItem_Take</i> take, <i>Int</i> fx)</code><br><br></div>
Remove a FX from take chain (returns true on success)<br><br>
<a name="TakeFX_EndParamEdit"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_EndParamEdit(MediaItem_Take* take, int fx, int param)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_EndParamEdit(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>param)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_EndParamEdit(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> param)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_EndParamEdit(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> param)</code><br><br></div>
<a name="TakeFX_FormatParamValue"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_FormatParamValue(MediaItem_Take* take, int fx, int param, double val, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_FormatParamValue(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>param, val, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_FormatParamValue(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> param, <i>number</i> val, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> val, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_TakeFX_FormatParamValue(take, fx, param, val, buf, buf_sz)</code><br><br></div>
Note: only works with FX that support Cockos VST extensions.<br><br>
<a name="TakeFX_FormatParamValueNormalized"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_FormatParamValueNormalized(MediaItem_Take* take, int fx, int param, double value, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_FormatParamValueNormalized(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>param, value, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_FormatParamValueNormalized(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> param, <i>number</i> value, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> value, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_TakeFX_FormatParamValueNormalized(take, fx, param, value, buf, buf_sz)</code><br><br></div>
Note: only works with FX that support Cockos VST extensions.<br><br>
<a name="TakeFX_GetChainVisible"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TakeFX_GetChainVisible(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TakeFX_GetChainVisible(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetChainVisible(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TakeFX_GetChainVisible(<i>MediaItem_Take</i> take)</code><br><br></div>
returns index of effect visible in chain, or -1 for chain hidden, or -2 for chain visible but no effect selected<br><br>
<a name="TakeFX_GetCount"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TakeFX_GetCount(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TakeFX_GetCount(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetCount(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TakeFX_GetCount(<i>MediaItem_Take</i> take)</code><br><br></div>
<a name="TakeFX_GetEnabled"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_GetEnabled(MediaItem_Take* take, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_GetEnabled(<i>MediaItem_Take</i> take, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetEnabled(<i>MediaItem_Take</i> take, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_GetEnabled(<i>MediaItem_Take</i> take, <i>Int</i> fx)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetEnabled">TakeFX_SetEnabled</a><br><br>
<a name="TakeFX_GetEnvelope"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>TrackEnvelope* TakeFX_GetEnvelope(MediaItem_Take* take, int fxindex, int parameterindex, bool create)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>TrackEnvelope</i>  TakeFX_GetEnvelope(<i>MediaItem_Take</i> take, <i>int </i>fxindex, <i>int </i>parameterindex, <i>bool </i>create)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>TrackEnvelope</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetEnvelope(<i>MediaItem_Take</i> take, <i>integer</i> fxindex, <i>integer</i> parameterindex, <i>boolean</i> create)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>TrackEnvelope</i>  RPR_TakeFX_GetEnvelope(<i>MediaItem_Take</i> take, <i>Int</i> fxindex, <i>Int</i> parameterindex, <i>Boolean</i> create)</code><br><br></div>
Returns the FX parameter envelope. If the envelope does not exist and create=true, the envelope will be created.<br><br>
<a name="TakeFX_GetFloatingWindow"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>HWND TakeFX_GetFloatingWindow(MediaItem_Take* take, int index)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>HWND</i>  TakeFX_GetFloatingWindow(<i>MediaItem_Take</i> take, <i>int </i>index)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>HWND</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetFloatingWindow(<i>MediaItem_Take</i> take, <i>integer</i> index)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>HWND</i>  RPR_TakeFX_GetFloatingWindow(<i>MediaItem_Take</i> take, <i>Int</i> index)</code><br><br></div>
returns HWND of floating window for effect index, if any<br><br>
<a name="TakeFX_GetFormattedParamValue"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_GetFormattedParamValue(MediaItem_Take* take, int fx, int param, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_GetFormattedParamValue(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>param, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetFormattedParamValue(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> param, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> param, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_TakeFX_GetFormattedParamValue(take, fx, param, buf, buf_sz)</code><br><br></div>
<a name="TakeFX_GetFXGUID"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>GUID* TakeFX_GetFXGUID(MediaItem_Take* take, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  TakeFX_GetFXGUID(#retguid, <i>MediaItem_Take</i> take, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> GUID = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetFXGUID(<i>MediaItem_Take</i> take, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>GUID</i>  RPR_TakeFX_GetFXGUID(<i>MediaItem_Take</i> take, <i>Int</i> fx)</code><br><br></div>
<a name="TakeFX_GetFXName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_GetFXName(MediaItem_Take* take, int fx, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_GetFXName(<i>MediaItem_Take</i> take, <i>int </i>fx, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetFXName(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_TakeFX_GetFXName(take, fx, buf, buf_sz)</code><br><br></div>
<a name="TakeFX_GetIOSize"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TakeFX_GetIOSize(MediaItem_Take* take, int fx, int* inputPinsOutOptional, int* outputPinsOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TakeFX_GetIOSize(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>optional int &amp;</i>inputPins, <i>optional int &amp;</i>outputPins)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>optional number </i>inputPins, <i>optional number </i>outputPins = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetIOSize(<i>MediaItem_Take</i> take, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> inputPinsOutOptional, <i>Int</i> outputPinsOutOptional) = RPR_TakeFX_GetIOSize(take, fx, inputPinsOutOptional, outputPinsOutOptional)</code><br><br></div>
sets the number of input/output pins for FX if available, returns plug-in type or -1 on error<br><br>
<a name="TakeFX_GetNamedConfigParm"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_GetNamedConfigParm(MediaItem_Take* take, int fx, const char* parmname, char* bufOut, int bufOut_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_GetNamedConfigParm(<i>MediaItem_Take</i> take, <i>int </i>fx, "parmname", #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetNamedConfigParm(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>string</i> parmname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>String</i> parmname, <i>String</i> bufOut, <i>Int</i> bufOut_sz) = RPR_TakeFX_GetNamedConfigParm(take, fx, parmname, bufOut, bufOut_sz)</code><br><br></div>
gets plug-in specific named configuration value (returns true on success). see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetNamedConfigParm">TrackFX_GetNamedConfigParm</a><br><br>
<a name="TakeFX_GetNumParams"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TakeFX_GetNumParams(MediaItem_Take* take, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TakeFX_GetNumParams(<i>MediaItem_Take</i> take, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetNumParams(<i>MediaItem_Take</i> take, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TakeFX_GetNumParams(<i>MediaItem_Take</i> take, <i>Int</i> fx)</code><br><br></div>
<a name="TakeFX_GetOffline"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_GetOffline(MediaItem_Take* take, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_GetOffline(<i>MediaItem_Take</i> take, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetOffline(<i>MediaItem_Take</i> take, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_GetOffline(<i>MediaItem_Take</i> take, <i>Int</i> fx)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetOffline">TakeFX_SetOffline</a><br><br>
<a name="TakeFX_GetOpen"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_GetOpen(MediaItem_Take* take, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_GetOpen(<i>MediaItem_Take</i> take, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetOpen(<i>MediaItem_Take</i> take, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_GetOpen(<i>MediaItem_Take</i> take, <i>Int</i> fx)</code><br><br></div>
Returns true if this FX UI is open in the FX chain window or a floating window. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetOpen">TakeFX_SetOpen</a><br><br>
<a name="TakeFX_GetParam"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TakeFX_GetParam(MediaItem_Take* take, int fx, int param, double* minvalOut, double* maxvalOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TakeFX_GetParam(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>param, <i>&amp;</i>minval, <i>&amp;</i>maxval)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> retval, <i>number </i>minval, <i>number </i>maxval = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetParam(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> param)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> minvalOut, <i>Float</i> maxvalOut) = RPR_TakeFX_GetParam(take, fx, param, minvalOut, maxvalOut)</code><br><br></div>
<a name="TakeFX_GetParameterStepSizes"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_GetParameterStepSizes(MediaItem_Take* take, int fx, int param, double* stepOut, double* smallstepOut, double* largestepOut, bool* istoggleOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_GetParameterStepSizes(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>param, <i>&amp;</i>step, <i>&amp;</i>smallstep, <i>&amp;</i>largestep, <i>bool &amp;</i>istoggle)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>step, <i>number </i>smallstep, <i>number </i>largestep, <i>boolean </i>istoggle = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetParameterStepSizes(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> param)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> stepOut, <i>Float</i> smallstepOut, <i>Float</i> largestepOut, <i>Boolean</i> istoggleOut) = RPR_TakeFX_GetParameterStepSizes(take, fx, param, stepOut, smallstepOut, largestepOut, istoggleOut)</code><br><br></div>
<a name="TakeFX_GetParamEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TakeFX_GetParamEx(MediaItem_Take* take, int fx, int param, double* minvalOut, double* maxvalOut, double* midvalOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TakeFX_GetParamEx(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>param, <i>&amp;</i>minval, <i>&amp;</i>maxval, <i>&amp;</i>midval)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> retval, <i>number </i>minval, <i>number </i>maxval, <i>number </i>midval = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetParamEx(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> param)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> minvalOut, <i>Float</i> maxvalOut, <i>Float</i> midvalOut) = RPR_TakeFX_GetParamEx(take, fx, param, minvalOut, maxvalOut, midvalOut)</code><br><br></div>
<a name="TakeFX_GetParamName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_GetParamName(MediaItem_Take* take, int fx, int param, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_GetParamName(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>param, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetParamName(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> param, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> param, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_TakeFX_GetParamName(take, fx, param, buf, buf_sz)</code><br><br></div>
<a name="TakeFX_GetParamNormalized"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TakeFX_GetParamNormalized(MediaItem_Take* take, int fx, int param)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TakeFX_GetParamNormalized(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>param)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetParamNormalized(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> param)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TakeFX_GetParamNormalized(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> param)</code><br><br></div>
<a name="TakeFX_GetPinMappings"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TakeFX_GetPinMappings(MediaItem_Take* tr, int fx, int isoutput, int pin, int* high32OutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TakeFX_GetPinMappings(<i>MediaItem_Take</i> tr, <i>int </i>fx, <i>int </i>isoutput, <i>int </i>pin, <i>optional int &amp;</i>high32)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>optional number </i>high32 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetPinMappings(<i>MediaItem_Take</i> tr, <i>integer</i> fx, <i>integer</i> isoutput, <i>integer</i> pin)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>MediaItem_Take</i> tr, <i>Int</i> fx, <i>Int</i> isoutput, <i>Int</i> pin, <i>Int</i> high32OutOptional) = RPR_TakeFX_GetPinMappings(tr, fx, isoutput, pin, high32OutOptional)</code><br><br></div>
gets the effective channel mapping bitmask for a particular pin. high32OutOptional will be set to the high 32 bits<br><br>
<a name="TakeFX_GetPreset"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_GetPreset(MediaItem_Take* take, int fx, char* presetname, int presetname_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_GetPreset(<i>MediaItem_Take</i> take, <i>int </i>fx, #presetname)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>presetname = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetPreset(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>string </i>presetname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>String</i> presetname, <i>Int</i> presetname_sz) = RPR_TakeFX_GetPreset(take, fx, presetname, presetname_sz)</code><br><br></div>
Get the name of the preset currently showing in the <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> dropdown, or the full path to a factory preset file for VST3 plug-ins (.vstpreset). Returns false if the current FX parameters do not exactly match the preset (in other words, if the user loaded the preset but moved the knobs afterward). See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetPreset">TakeFX_SetPreset</a>.<br><br>
<a name="TakeFX_GetPresetIndex"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TakeFX_GetPresetIndex(MediaItem_Take* take, int fx, int* numberOfPresetsOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TakeFX_GetPresetIndex(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int &amp;</i>numberOfPresets)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>number </i>numberOfPresets = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetPresetIndex(<i>MediaItem_Take</i> take, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> numberOfPresetsOut) = RPR_TakeFX_GetPresetIndex(take, fx, numberOfPresetsOut)</code><br><br></div>
Returns current preset index, or -1 if error. numberOfPresetsOut will be set to total number of presets available. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_SetPresetByIndex">TakeFX_SetPresetByIndex</a><br><br>
<a name="TakeFX_GetUserPresetFilename"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TakeFX_GetUserPresetFilename(MediaItem_Take* take, int fx, char* fn, int fn_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TakeFX_GetUserPresetFilename(<i>MediaItem_Take</i> take, <i>int </i>fx, #fn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>fn = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_GetUserPresetFilename(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>string </i>fn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>String</i> fn, <i>Int</i> fn_sz) = RPR_TakeFX_GetUserPresetFilename(take, fx, fn, fn_sz)</code><br><br></div>
<a name="TakeFX_NavigatePresets"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_NavigatePresets(MediaItem_Take* take, int fx, int presetmove)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_NavigatePresets(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>presetmove)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_NavigatePresets(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> presetmove)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_NavigatePresets(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> presetmove)</code><br><br></div>
presetmove==1 activates the next preset, presetmove==-1 activates the previous preset, etc.<br><br>
<a name="TakeFX_SetEnabled"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TakeFX_SetEnabled(MediaItem_Take* take, int fx, bool enabled)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TakeFX_SetEnabled(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>bool </i>enabled)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_SetEnabled(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>boolean</i> enabled)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TakeFX_SetEnabled(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Boolean</i> enabled)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetEnabled">TakeFX_GetEnabled</a><br><br>
<a name="TakeFX_SetNamedConfigParm"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_SetNamedConfigParm(MediaItem_Take* take, int fx, const char* parmname, const char* value)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_SetNamedConfigParm(<i>MediaItem_Take</i> take, <i>int </i>fx, "parmname", "value")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_SetNamedConfigParm(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>string</i> parmname, <i>string</i> value)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_SetNamedConfigParm(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>String</i> parmname, <i>String</i> value)</code><br><br></div>
gets plug-in specific named configuration value (returns true on success)<br><br>
<a name="TakeFX_SetOffline"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TakeFX_SetOffline(MediaItem_Take* take, int fx, bool offline)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TakeFX_SetOffline(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>bool </i>offline)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_SetOffline(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>boolean</i> offline)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TakeFX_SetOffline(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Boolean</i> offline)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetOffline">TakeFX_GetOffline</a><br><br>
<a name="TakeFX_SetOpen"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TakeFX_SetOpen(MediaItem_Take* take, int fx, bool open)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TakeFX_SetOpen(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>bool </i>open)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_SetOpen(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>boolean</i> open)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TakeFX_SetOpen(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Boolean</i> open)</code><br><br></div>
Open this FX UI. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetOpen">TakeFX_GetOpen</a><br><br>
<a name="TakeFX_SetParam"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_SetParam(MediaItem_Take* take, int fx, int param, double val)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_SetParam(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>param, val)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_SetParam(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> param, <i>number</i> val)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_SetParam(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> val)</code><br><br></div>
<a name="TakeFX_SetParamNormalized"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_SetParamNormalized(MediaItem_Take* take, int fx, int param, double value)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_SetParamNormalized(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>param, value)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_SetParamNormalized(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> param, <i>number</i> value)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_SetParamNormalized(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> value)</code><br><br></div>
<a name="TakeFX_SetPinMappings"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_SetPinMappings(MediaItem_Take* tr, int fx, int isoutput, int pin, int low32bits, int hi32bits)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_SetPinMappings(<i>MediaItem_Take</i> tr, <i>int </i>fx, <i>int </i>isoutput, <i>int </i>pin, <i>int </i>low32bits, <i>int </i>hi32bits)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_SetPinMappings(<i>MediaItem_Take</i> tr, <i>integer</i> fx, <i>integer</i> isoutput, <i>integer</i> pin, <i>integer</i> low32bits, <i>integer</i> hi32bits)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_SetPinMappings(<i>MediaItem_Take</i> tr, <i>Int</i> fx, <i>Int</i> isoutput, <i>Int</i> pin, <i>Int</i> low32bits, <i>Int</i> hi32bits)</code><br><br></div>
sets the channel mapping bitmask for a particular pin. returns false if unsupported (not all types of plug-ins support this capability)<br><br>
<a name="TakeFX_SetPreset"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_SetPreset(MediaItem_Take* take, int fx, const char* presetname)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_SetPreset(<i>MediaItem_Take</i> take, <i>int </i>fx, "presetname")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_SetPreset(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>string</i> presetname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_SetPreset(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>String</i> presetname)</code><br><br></div>
Activate a preset with the name shown in the <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> dropdown. Full paths to .vstpreset files are also supported for VST3 plug-ins. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetPreset">TakeFX_GetPreset</a>.<br><br>
<a name="TakeFX_SetPresetByIndex"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeFX_SetPresetByIndex(MediaItem_Take* take, int fx, int idx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeFX_SetPresetByIndex(<i>MediaItem_Take</i> take, <i>int </i>fx, <i>int </i>idx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_SetPresetByIndex(<i>MediaItem_Take</i> take, <i>integer</i> fx, <i>integer</i> idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeFX_SetPresetByIndex(<i>MediaItem_Take</i> take, <i>Int</i> fx, <i>Int</i> idx)</code><br><br></div>
Sets the preset idx, or the factory preset (idx==-2), or the default user preset (idx==-1). Returns true on success. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TakeFX_GetPresetIndex">TakeFX_GetPresetIndex</a>.<br><br>
<a name="TakeFX_Show"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TakeFX_Show(MediaItem_Take* take, int index, int showFlag)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TakeFX_Show(<i>MediaItem_Take</i> take, <i>int </i>index, <i>int </i>showFlag)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeFX_Show(<i>MediaItem_Take</i> take, <i>integer</i> index, <i>integer</i> showFlag)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TakeFX_Show(<i>MediaItem_Take</i> take, <i>Int</i> index, <i>Int</i> showFlag)</code><br><br></div>
showflag=0 for hidechain, =1 for show chain(index valid), =2 for hide floating window(index valid), =3 for show floating window (index valid)<br><br>
<a name="TakeIsMIDI"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TakeIsMIDI(MediaItem_Take* take)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TakeIsMIDI(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TakeIsMIDI(<i>MediaItem_Take</i> take)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TakeIsMIDI(<i>MediaItem_Take</i> take)</code><br><br></div>
Returns true if the active take contains MIDI.<br><br>
<a name="time_precise"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double time_precise()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.time_precise()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_time_precise()</code><br><br></div>
Gets a precise system timestamp in seconds<br><br>
<a name="TimeMap2_beatsToTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap2_beatsToTime(ReaProject* proj, double tpos, const int* measuresInOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap2_beatsToTime(<i>ReaProject</i> proj, tpos, <i>optional int</i> measuresIn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap2_beatsToTime(<i>ReaProject</i> proj, <i>number</i> tpos, <i>optional number</i> measuresIn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TimeMap2_beatsToTime(<i>ReaProject</i> proj, <i>Float</i> tpos, <i>const int</i> measuresInOptional)</code><br><br></div>
convert a beat position (or optionally a beats+measures if measures is non-NULL) to time.<br><br>
<a name="TimeMap2_GetDividedBpmAtTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap2_GetDividedBpmAtTime(ReaProject* proj, double time)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap2_GetDividedBpmAtTime(<i>ReaProject</i> proj, time)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap2_GetDividedBpmAtTime(<i>ReaProject</i> proj, <i>number</i> time)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TimeMap2_GetDividedBpmAtTime(<i>ReaProject</i> proj, <i>Float</i> time)</code><br><br></div>
get the effective BPM at the time (seconds) position (i.e. 2x in /8 signatures)<br><br>
<a name="TimeMap2_GetNextChangeTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap2_GetNextChangeTime(ReaProject* proj, double time)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap2_GetNextChangeTime(<i>ReaProject</i> proj, time)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap2_GetNextChangeTime(<i>ReaProject</i> proj, <i>number</i> time)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TimeMap2_GetNextChangeTime(<i>ReaProject</i> proj, <i>Float</i> time)</code><br><br></div>
when does the next time map (tempo or time sig) change occur<br><br>
<a name="TimeMap2_QNToTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap2_QNToTime(ReaProject* proj, double qn)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap2_QNToTime(<i>ReaProject</i> proj, qn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap2_QNToTime(<i>ReaProject</i> proj, <i>number</i> qn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TimeMap2_QNToTime(<i>ReaProject</i> proj, <i>Float</i> qn)</code><br><br></div>
converts project QN position to time.<br><br>
<a name="TimeMap2_timeToBeats"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap2_timeToBeats(ReaProject* proj, double tpos, int* measuresOutOptional, int* cmlOutOptional, double* fullbeatsOutOptional, int* cdenomOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap2_timeToBeats(<i>ReaProject</i> proj, tpos, <i>optional int &amp;</i>measures, <i>optional int &amp;</i>cml, <i>optional &amp;</i>fullbeats, <i>optional int &amp;</i>cdenom)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> retval, <i>optional number </i>measures, <i>optional number </i>cml, <i>optional number </i>fullbeats, <i>optional number </i>cdenom = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap2_timeToBeats(<i>ReaProject</i> proj, <i>number</i> tpos)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> retval, <i>ReaProject</i> proj, <i>Float</i> tpos, <i>Int</i> measuresOutOptional, <i>Int</i> cmlOutOptional, <i>Float</i> fullbeatsOutOptional, <i>Int</i> cdenomOutOptional) = RPR_TimeMap2_timeToBeats(proj, tpos, measuresOutOptional, cmlOutOptional, fullbeatsOutOptional, cdenomOutOptional)</code><br><br></div>
convert a time into beats.<br>
if measures is non-NULL, measures will be set to the measure count, return value will be beats since measure.<br>
if cml is non-NULL, will be set to current measure length in beats (i.e. time signature numerator)<br>
if fullbeats is non-NULL, and measures is non-NULL, fullbeats will get the full beat count (same value returned if measures is NULL).<br>
if cdenom is non-NULL, will be set to the current time signature denominator.<br><br>
<a name="TimeMap2_timeToQN"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap2_timeToQN(ReaProject* proj, double tpos)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap2_timeToQN(<i>ReaProject</i> proj, tpos)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap2_timeToQN(<i>ReaProject</i> proj, <i>number</i> tpos)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TimeMap2_timeToQN(<i>ReaProject</i> proj, <i>Float</i> tpos)</code><br><br></div>
converts project time position to QN position.<br><br>
<a name="TimeMap_curFrameRate"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap_curFrameRate(ReaProject* proj, bool* dropFrameOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap_curFrameRate(<i>ReaProject</i> proj, <i>optional bool &amp;</i>dropFrame)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> retval, <i>optional boolean </i>dropFrame = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap_curFrameRate(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> retval, <i>ReaProject</i> proj, <i>Boolean</i> dropFrameOutOptional) = RPR_TimeMap_curFrameRate(proj, dropFrameOutOptional)</code><br><br></div>
Gets project framerate, and optionally whether it is drop-frame timecode<br><br>
<a name="TimeMap_GetDividedBpmAtTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap_GetDividedBpmAtTime(double time)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap_GetDividedBpmAtTime(time)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap_GetDividedBpmAtTime(<i>number</i> time)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TimeMap_GetDividedBpmAtTime(<i>Float</i> time)</code><br><br></div>
get the effective BPM at the time (seconds) position (i.e. 2x in /8 signatures)<br><br>
<a name="TimeMap_GetMeasureInfo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap_GetMeasureInfo(ReaProject* proj, int measure, double* qn_startOut, double* qn_endOut, int* timesig_numOut, int* timesig_denomOut, double* tempoOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap_GetMeasureInfo(<i>ReaProject</i> proj, <i>int </i>measure, <i>&amp;</i>qn_start, <i>&amp;</i>qn_end, <i>int &amp;</i>timesig_num, <i>int &amp;</i>timesig_denom, <i>&amp;</i>tempo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> retval, <i>number </i>qn_start, <i>number </i>qn_end, <i>number </i>timesig_num, <i>number </i>timesig_denom, <i>number </i>tempo = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap_GetMeasureInfo(<i>ReaProject</i> proj, <i>integer</i> measure)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> retval, <i>ReaProject</i> proj, <i>Int</i> measure, <i>Float</i> qn_startOut, <i>Float</i> qn_endOut, <i>Int</i> timesig_numOut, <i>Int</i> timesig_denomOut, <i>Float</i> tempoOut) = RPR_TimeMap_GetMeasureInfo(proj, measure, qn_startOut, qn_endOut, timesig_numOut, timesig_denomOut, tempoOut)</code><br><br></div>
Get the QN position and time signature information for the start of a measure. Return the time in seconds of the measure start.<br><br>
<a name="TimeMap_GetMetronomePattern"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TimeMap_GetMetronomePattern(ReaProject* proj, double time, char* pattern, int pattern_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TimeMap_GetMetronomePattern(<i>ReaProject</i> proj, time, #pattern)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>string </i>pattern = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap_GetMetronomePattern(<i>ReaProject</i> proj, <i>number</i> time, <i>string </i>pattern)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>ReaProject</i> proj, <i>Float</i> time, <i>String</i> pattern, <i>Int</i> pattern_sz) = RPR_TimeMap_GetMetronomePattern(proj, time, pattern, pattern_sz)</code><br><br></div>
Fills in a string representing the active metronome pattern. For example, in a 7/8 measure divided 3+4, the pattern might be "1221222". The length of the string is the time signature numerator, and the function returns the time signature denominator.<br><br>
<a name="TimeMap_GetTimeSigAtTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TimeMap_GetTimeSigAtTime(ReaProject* proj, double time, int* timesig_numOut, int* timesig_denomOut, double* tempoOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TimeMap_GetTimeSigAtTime(<i>ReaProject</i> proj, time, <i>int &amp;</i>timesig_num, <i>int &amp;</i>timesig_denom, <i>&amp;</i>tempo)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number </i>timesig_num, <i>number </i>timesig_denom, <i>number </i>tempo = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap_GetTimeSigAtTime(<i>ReaProject</i> proj, <i>number</i> time)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>ReaProject</i> proj, <i>Float</i> time, <i>Int</i> timesig_numOut, <i>Int</i> timesig_denomOut, <i>Float</i> tempoOut) = RPR_TimeMap_GetTimeSigAtTime(proj, time, timesig_numOut, timesig_denomOut, tempoOut)</code><br><br></div>
get the effective time signature and tempo<br><br>
<a name="TimeMap_QNToMeasures"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TimeMap_QNToMeasures(ReaProject* proj, double qn, double* qnMeasureStartOutOptional, double* qnMeasureEndOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TimeMap_QNToMeasures(<i>ReaProject</i> proj, qn, <i>optional &amp;</i>qnMeasureStart, <i>optional &amp;</i>qnMeasureEnd)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>optional number </i>qnMeasureStart, <i>optional number </i>qnMeasureEnd = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap_QNToMeasures(<i>ReaProject</i> proj, <i>number</i> qn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>ReaProject</i> proj, <i>Float</i> qn, <i>Float</i> qnMeasureStartOutOptional, <i>Float</i> qnMeasureEndOutOptional) = RPR_TimeMap_QNToMeasures(proj, qn, qnMeasureStartOutOptional, qnMeasureEndOutOptional)</code><br><br></div>
Find which measure the given QN position falls in.<br><br>
<a name="TimeMap_QNToTime"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap_QNToTime(double qn)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap_QNToTime(qn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap_QNToTime(<i>number</i> qn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TimeMap_QNToTime(<i>Float</i> qn)</code><br><br></div>
converts project QN position to time.<br><br>
<a name="TimeMap_QNToTime_abs"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap_QNToTime_abs(ReaProject* proj, double qn)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap_QNToTime_abs(<i>ReaProject</i> proj, qn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap_QNToTime_abs(<i>ReaProject</i> proj, <i>number</i> qn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TimeMap_QNToTime_abs(<i>ReaProject</i> proj, <i>Float</i> qn)</code><br><br></div>
Converts project quarter note count (QN) to time. QN is counted from the start of the project, regardless of any partial measures. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap2_QNToTime">TimeMap2_QNToTime</a><br><br>
<a name="TimeMap_timeToQN"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap_timeToQN(double tpos)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap_timeToQN(tpos)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap_timeToQN(<i>number</i> tpos)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TimeMap_timeToQN(<i>Float</i> tpos)</code><br><br></div>
converts project QN position to time.<br><br>
<a name="TimeMap_timeToQN_abs"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TimeMap_timeToQN_abs(ReaProject* proj, double tpos)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TimeMap_timeToQN_abs(<i>ReaProject</i> proj, tpos)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TimeMap_timeToQN_abs(<i>ReaProject</i> proj, <i>number</i> tpos)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TimeMap_timeToQN_abs(<i>ReaProject</i> proj, <i>Float</i> tpos)</code><br><br></div>
Converts project time position to quarter note count (QN). QN is counted from the start of the project, regardless of any partial measures. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TimeMap2_timeToQN">TimeMap2_timeToQN</a><br><br>
<a name="ToggleTrackSendUIMute"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool ToggleTrackSendUIMute(MediaTrack* track, int send_idx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> ToggleTrackSendUIMute(<i>MediaTrack</i> track, <i>int </i>send_idx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ToggleTrackSendUIMute(<i>MediaTrack</i> track, <i>integer</i> send_idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_ToggleTrackSendUIMute(<i>MediaTrack</i> track, <i>Int</i> send_idx)</code><br><br></div>
send_idx&lt;0 for receives, &gt;=0 for hw ouputs, &gt;=nb_of_hw_ouputs for sends.<br><br>
<a name="Track_GetPeakHoldDB"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double Track_GetPeakHoldDB(MediaTrack* track, int channel, bool clear)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> Track_GetPeakHoldDB(<i>MediaTrack</i> track, <i>int </i>channel, <i>bool </i>clear)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Track_GetPeakHoldDB(<i>MediaTrack</i> track, <i>integer</i> channel, <i>boolean</i> clear)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_Track_GetPeakHoldDB(<i>MediaTrack</i> track, <i>Int</i> channel, <i>Boolean</i> clear)</code><br><br></div>
<a name="Track_GetPeakInfo"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double Track_GetPeakInfo(MediaTrack* track, int channel)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> Track_GetPeakInfo(<i>MediaTrack</i> track, <i>int </i>channel)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Track_GetPeakInfo(<i>MediaTrack</i> track, <i>integer</i> channel)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_Track_GetPeakInfo(<i>MediaTrack</i> track, <i>Int</i> channel)</code><br><br></div>
<a name="TrackCtl_SetToolTip"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TrackCtl_SetToolTip(const char* fmt, int xpos, int ypos, bool topmost)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TrackCtl_SetToolTip("fmt", <i>int </i>xpos, <i>int </i>ypos, <i>bool </i>topmost)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackCtl_SetToolTip(<i>string</i> fmt, <i>integer</i> xpos, <i>integer</i> ypos, <i>boolean</i> topmost)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TrackCtl_SetToolTip(<i>String</i> fmt, <i>Int</i> xpos, <i>Int</i> ypos, <i>Boolean</i> topmost)</code><br><br></div>
displays tooltip at location, or removes if empty string<br><br>
<a name="TrackFX_AddByName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_AddByName(MediaTrack* track, const char* fxname, bool recFX, int instantiate)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_AddByName(<i>MediaTrack</i> track, "fxname", <i>bool </i>recFX, <i>int </i>instantiate)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_AddByName(<i>MediaTrack</i> track, <i>string</i> fxname, <i>boolean</i> recFX, <i>integer</i> instantiate)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TrackFX_AddByName(<i>MediaTrack</i> track, <i>String</i> fxname, <i>Boolean</i> recFX, <i>Int</i> instantiate)</code><br><br></div>
Adds or queries the position of a named FX from the track FX chain (recFX=false) or record input FX/monitoring FX (recFX=true, monitoring FX are on master track). Specify a negative value for instantiate to always create a new effect, 0 to only query the first instance of an effect, or a positive value to add an instance if one is not found. fxname can have prefix to specify type: VST3:,VST2:,VST:,AU:,JS:, or DX:.<br><br>
<a name="TrackFX_CopyToTake"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TrackFX_CopyToTake(MediaTrack* src_track, int src_fx, MediaItem_Take* dest_take, int dest_fx, bool is_move)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TrackFX_CopyToTake(<i>MediaTrack</i> src_track, <i>int </i>src_fx, <i>MediaItem_Take</i> dest_take, <i>int </i>dest_fx, <i>bool </i>is_move)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_CopyToTake(<i>MediaTrack</i> src_track, <i>integer</i> src_fx, <i>MediaItem_Take</i> dest_take, <i>integer</i> dest_fx, <i>boolean</i> is_move)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TrackFX_CopyToTake(<i>MediaTrack</i> src_track, <i>Int</i> src_fx, <i>MediaItem_Take</i> dest_take, <i>Int</i> dest_fx, <i>Boolean</i> is_move)</code><br><br></div>
Copies (or moves) FX from src_track to dest_take. src_fx can have 0x1000000 set to reference input FX. <br><br>
<a name="TrackFX_CopyToTrack"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TrackFX_CopyToTrack(MediaTrack* src_track, int src_fx, MediaTrack* dest_track, int dest_fx, bool is_move)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TrackFX_CopyToTrack(<i>MediaTrack</i> src_track, <i>int </i>src_fx, <i>MediaTrack</i> dest_track, <i>int </i>dest_fx, <i>bool </i>is_move)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_CopyToTrack(<i>MediaTrack</i> src_track, <i>integer</i> src_fx, <i>MediaTrack</i> dest_track, <i>integer</i> dest_fx, <i>boolean</i> is_move)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TrackFX_CopyToTrack(<i>MediaTrack</i> src_track, <i>Int</i> src_fx, <i>MediaTrack</i> dest_track, <i>Int</i> dest_fx, <i>Boolean</i> is_move)</code><br><br></div>
Copies (or moves) FX from src_track to dest_track. Can be used with src_track=dest_track to reorder, FX indices have 0x1000000 set to reference input FX. <br><br>
<a name="TrackFX_Delete"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_Delete(MediaTrack* track, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_Delete(<i>MediaTrack</i> track, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_Delete(<i>MediaTrack</i> track, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_Delete(<i>MediaTrack</i> track, <i>Int</i> fx)</code><br><br></div>
Remove a FX from track chain (returns true on success)<br><br>
<a name="TrackFX_EndParamEdit"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_EndParamEdit(MediaTrack* track, int fx, int param)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_EndParamEdit(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>param)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_EndParamEdit(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> param)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_EndParamEdit(<i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> param)</code><br><br></div>
<a name="TrackFX_FormatParamValue"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_FormatParamValue(MediaTrack* track, int fx, int param, double val, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_FormatParamValue(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>param, val, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_FormatParamValue(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> param, <i>number</i> val, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> val, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_TrackFX_FormatParamValue(track, fx, param, val, buf, buf_sz)</code><br><br></div>
Note: only works with FX that support Cockos VST extensions.<br><br>
<a name="TrackFX_FormatParamValueNormalized"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_FormatParamValueNormalized(MediaTrack* track, int fx, int param, double value, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_FormatParamValueNormalized(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>param, value, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_FormatParamValueNormalized(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> param, <i>number</i> value, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> value, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_TrackFX_FormatParamValueNormalized(track, fx, param, value, buf, buf_sz)</code><br><br></div>
Note: only works with FX that support Cockos VST extensions.<br><br>
<a name="TrackFX_GetByName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_GetByName(MediaTrack* track, const char* fxname, bool instantiate)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_GetByName(<i>MediaTrack</i> track, "fxname", <i>bool </i>instantiate)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetByName(<i>MediaTrack</i> track, <i>string</i> fxname, <i>boolean</i> instantiate)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TrackFX_GetByName(<i>MediaTrack</i> track, <i>String</i> fxname, <i>Boolean</i> instantiate)</code><br><br></div>
Get the index of the first track FX insert that matches fxname. If the FX is not in the chain and instantiate is true, it will be inserted. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetInstrument">TrackFX_GetInstrument</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQ">TrackFX_GetEQ</a>. Deprecated in favor of TrackFX_AddByName.<br><br>
<a name="TrackFX_GetChainVisible"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_GetChainVisible(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_GetChainVisible(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetChainVisible(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TrackFX_GetChainVisible(<i>MediaTrack</i> track)</code><br><br></div>
returns index of effect visible in chain, or -1 for chain hidden, or -2 for chain visible but no effect selected<br><br>
<a name="TrackFX_GetCount"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_GetCount(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_GetCount(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetCount(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TrackFX_GetCount(<i>MediaTrack</i> track)</code><br><br></div>
<a name="TrackFX_GetEnabled"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_GetEnabled(MediaTrack* track, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_GetEnabled(<i>MediaTrack</i> track, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetEnabled(<i>MediaTrack</i> track, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_GetEnabled(<i>MediaTrack</i> track, <i>Int</i> fx)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetEnabled">TrackFX_SetEnabled</a><br><br>
<a name="TrackFX_GetEQ"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_GetEQ(MediaTrack* track, bool instantiate)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_GetEQ(<i>MediaTrack</i> track, <i>bool </i>instantiate)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetEQ(<i>MediaTrack</i> track, <i>boolean</i> instantiate)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TrackFX_GetEQ(<i>MediaTrack</i> track, <i>Boolean</i> instantiate)</code><br><br></div>
Get the index of ReaEQ in the track FX chain. If ReaEQ is not in the chain and instantiate is true, it will be inserted. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetInstrument">TrackFX_GetInstrument</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetByName">TrackFX_GetByName</a>.<br><br>
<a name="TrackFX_GetEQBandEnabled"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_GetEQBandEnabled(MediaTrack* track, int fxidx, int bandtype, int bandidx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_GetEQBandEnabled(<i>MediaTrack</i> track, <i>int </i>fxidx, <i>int </i>bandtype, <i>int </i>bandidx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetEQBandEnabled(<i>MediaTrack</i> track, <i>integer</i> fxidx, <i>integer</i> bandtype, <i>integer</i> bandidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_GetEQBandEnabled(<i>MediaTrack</i> track, <i>Int</i> fxidx, <i>Int</i> bandtype, <i>Int</i> bandidx)</code><br><br></div>
Returns true if the EQ band is enabled.<br>
Returns false if the band is disabled, or if track/fxidx is not ReaEQ.<br>
Bandtype: 0=lhipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass.<br>
Bandidx: 0=first band matching bandtype, 1=2nd band matching bandtype, etc.<br>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQ">TrackFX_GetEQ</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQParam">TrackFX_GetEQParam</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetEQParam">TrackFX_SetEQParam</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetEQBandEnabled">TrackFX_SetEQBandEnabled</a>.<br><br>
<a name="TrackFX_GetEQParam"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_GetEQParam(MediaTrack* track, int fxidx, int paramidx, int* bandtypeOut, int* bandidxOut, int* paramtypeOut, double* normvalOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_GetEQParam(<i>MediaTrack</i> track, <i>int </i>fxidx, <i>int </i>paramidx, <i>int &amp;</i>bandtype, <i>int &amp;</i>bandidx, <i>int &amp;</i>paramtype, <i>&amp;</i>normval)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>bandtype, <i>number </i>bandidx, <i>number </i>paramtype, <i>number </i>normval = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetEQParam(<i>MediaTrack</i> track, <i>integer</i> fxidx, <i>integer</i> paramidx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> fxidx, <i>Int</i> paramidx, <i>Int</i> bandtypeOut, <i>Int</i> bandidxOut, <i>Int</i> paramtypeOut, <i>Float</i> normvalOut) = RPR_TrackFX_GetEQParam(track, fxidx, paramidx, bandtypeOut, bandidxOut, paramtypeOut, normvalOut)</code><br><br></div>
Returns false if track/fxidx is not ReaEQ.<br>
Bandtype: -1=master gain, 0=lhipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass.<br>
Bandidx (ignored for master gain): 0=first band matching bandtype, 1=2nd band matching bandtype, etc.<br>
Paramtype (ignored for master gain): 0=freq, 1=gain, 2=Q.<br>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQ">TrackFX_GetEQ</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetEQParam">TrackFX_SetEQParam</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQBandEnabled">TrackFX_GetEQBandEnabled</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetEQBandEnabled">TrackFX_SetEQBandEnabled</a>.<br><br>
<a name="TrackFX_GetFloatingWindow"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>HWND TrackFX_GetFloatingWindow(MediaTrack* track, int index)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>HWND</i>  TrackFX_GetFloatingWindow(<i>MediaTrack</i> track, <i>int </i>index)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>HWND</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetFloatingWindow(<i>MediaTrack</i> track, <i>integer</i> index)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>HWND</i>  RPR_TrackFX_GetFloatingWindow(<i>MediaTrack</i> track, <i>Int</i> index)</code><br><br></div>
returns HWND of floating window for effect index, if any<br><br>
<a name="TrackFX_GetFormattedParamValue"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_GetFormattedParamValue(MediaTrack* track, int fx, int param, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_GetFormattedParamValue(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>param, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetFormattedParamValue(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> param, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> param, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_TrackFX_GetFormattedParamValue(track, fx, param, buf, buf_sz)</code><br><br></div>
<a name="TrackFX_GetFXGUID"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>GUID* TrackFX_GetFXGUID(MediaTrack* track, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  TrackFX_GetFXGUID(#retguid, <i>MediaTrack</i> track, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> GUID = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetFXGUID(<i>MediaTrack</i> track, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>GUID</i>  RPR_TrackFX_GetFXGUID(<i>MediaTrack</i> track, <i>Int</i> fx)</code><br><br></div>
<a name="TrackFX_GetFXName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_GetFXName(MediaTrack* track, int fx, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_GetFXName(<i>MediaTrack</i> track, <i>int </i>fx, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetFXName(<i>MediaTrack</i> track, <i>integer</i> fx, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_TrackFX_GetFXName(track, fx, buf, buf_sz)</code><br><br></div>
<a name="TrackFX_GetInstrument"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_GetInstrument(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_GetInstrument(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetInstrument(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TrackFX_GetInstrument(<i>MediaTrack</i> track)</code><br><br></div>
Get the index of the first track FX insert that is a virtual instrument, or -1 if none. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQ">TrackFX_GetEQ</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetByName">TrackFX_GetByName</a>.<br><br>
<a name="TrackFX_GetIOSize"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_GetIOSize(MediaTrack* track, int fx, int* inputPinsOutOptional, int* outputPinsOutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_GetIOSize(<i>MediaTrack</i> track, <i>int </i>fx, <i>optional int &amp;</i>inputPins, <i>optional int &amp;</i>outputPins)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>optional number </i>inputPins, <i>optional number </i>outputPins = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetIOSize(<i>MediaTrack</i> track, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> inputPinsOutOptional, <i>Int</i> outputPinsOutOptional) = RPR_TrackFX_GetIOSize(track, fx, inputPinsOutOptional, outputPinsOutOptional)</code><br><br></div>
sets the number of input/output pins for FX if available, returns plug-in type or -1 on error<br><br>
<a name="TrackFX_GetNamedConfigParm"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_GetNamedConfigParm(MediaTrack* track, int fx, const char* parmname, char* bufOut, int bufOut_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_GetNamedConfigParm(<i>MediaTrack</i> track, <i>int </i>fx, "parmname", #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetNamedConfigParm(<i>MediaTrack</i> track, <i>integer</i> fx, <i>string</i> parmname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>String</i> parmname, <i>String</i> bufOut, <i>Int</i> bufOut_sz) = RPR_TrackFX_GetNamedConfigParm(track, fx, parmname, bufOut, bufOut_sz)</code><br><br></div>
gets plug-in specific named configuration value (returns true on success). Special values: 'pdc' returns PDC latency. 'in_pin_0' returns name of first input pin (if available), 'out_pin_0' returns name of first output pin (if available), etc.<br><br>
<a name="TrackFX_GetNumParams"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_GetNumParams(MediaTrack* track, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_GetNumParams(<i>MediaTrack</i> track, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetNumParams(<i>MediaTrack</i> track, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TrackFX_GetNumParams(<i>MediaTrack</i> track, <i>Int</i> fx)</code><br><br></div>
<a name="TrackFX_GetOffline"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_GetOffline(MediaTrack* track, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_GetOffline(<i>MediaTrack</i> track, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetOffline(<i>MediaTrack</i> track, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_GetOffline(<i>MediaTrack</i> track, <i>Int</i> fx)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetOffline">TrackFX_SetOffline</a><br><br>
<a name="TrackFX_GetOpen"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_GetOpen(MediaTrack* track, int fx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_GetOpen(<i>MediaTrack</i> track, <i>int </i>fx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetOpen(<i>MediaTrack</i> track, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_GetOpen(<i>MediaTrack</i> track, <i>Int</i> fx)</code><br><br></div>
Returns true if this FX UI is open in the FX chain window or a floating window. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetOpen">TrackFX_SetOpen</a><br><br>
<a name="TrackFX_GetParam"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TrackFX_GetParam(MediaTrack* track, int fx, int param, double* minvalOut, double* maxvalOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TrackFX_GetParam(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>param, <i>&amp;</i>minval, <i>&amp;</i>maxval)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> retval, <i>number </i>minval, <i>number </i>maxval = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetParam(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> param)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> minvalOut, <i>Float</i> maxvalOut) = RPR_TrackFX_GetParam(track, fx, param, minvalOut, maxvalOut)</code><br><br></div>
<a name="TrackFX_GetParameterStepSizes"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_GetParameterStepSizes(MediaTrack* track, int fx, int param, double* stepOut, double* smallstepOut, double* largestepOut, bool* istoggleOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_GetParameterStepSizes(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>param, <i>&amp;</i>step, <i>&amp;</i>smallstep, <i>&amp;</i>largestep, <i>bool &amp;</i>istoggle)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>number </i>step, <i>number </i>smallstep, <i>number </i>largestep, <i>boolean </i>istoggle = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetParameterStepSizes(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> param)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> stepOut, <i>Float</i> smallstepOut, <i>Float</i> largestepOut, <i>Boolean</i> istoggleOut) = RPR_TrackFX_GetParameterStepSizes(track, fx, param, stepOut, smallstepOut, largestepOut, istoggleOut)</code><br><br></div>
<a name="TrackFX_GetParamEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TrackFX_GetParamEx(MediaTrack* track, int fx, int param, double* minvalOut, double* maxvalOut, double* midvalOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TrackFX_GetParamEx(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>param, <i>&amp;</i>minval, <i>&amp;</i>maxval, <i>&amp;</i>midval)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> retval, <i>number </i>minval, <i>number </i>maxval, <i>number </i>midval = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetParamEx(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> param)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Float</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> minvalOut, <i>Float</i> maxvalOut, <i>Float</i> midvalOut) = RPR_TrackFX_GetParamEx(track, fx, param, minvalOut, maxvalOut, midvalOut)</code><br><br></div>
<a name="TrackFX_GetParamName"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_GetParamName(MediaTrack* track, int fx, int param, char* buf, int buf_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_GetParamName(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>param, #buf)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>buf = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetParamName(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> param, <i>string </i>buf)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> param, <i>String</i> buf, <i>Int</i> buf_sz) = RPR_TrackFX_GetParamName(track, fx, param, buf, buf_sz)</code><br><br></div>
<a name="TrackFX_GetParamNormalized"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>double TrackFX_GetParamNormalized(MediaTrack* track, int fx, int param)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>double </i> TrackFX_GetParamNormalized(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>param)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>number</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetParamNormalized(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> param)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Float</i>  RPR_TrackFX_GetParamNormalized(<i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> param)</code><br><br></div>
<a name="TrackFX_GetPinMappings"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_GetPinMappings(MediaTrack* tr, int fx, int isoutput, int pin, int* high32OutOptional)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_GetPinMappings(<i>MediaTrack</i> tr, <i>int </i>fx, <i>int </i>isoutput, <i>int </i>pin, <i>optional int &amp;</i>high32)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>optional number </i>high32 = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetPinMappings(<i>MediaTrack</i> tr, <i>integer</i> fx, <i>integer</i> isoutput, <i>integer</i> pin)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>MediaTrack</i> tr, <i>Int</i> fx, <i>Int</i> isoutput, <i>Int</i> pin, <i>Int</i> high32OutOptional) = RPR_TrackFX_GetPinMappings(tr, fx, isoutput, pin, high32OutOptional)</code><br><br></div>
gets the effective channel mapping bitmask for a particular pin. high32OutOptional will be set to the high 32 bits<br><br>
<a name="TrackFX_GetPreset"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_GetPreset(MediaTrack* track, int fx, char* presetname, int presetname_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_GetPreset(<i>MediaTrack</i> track, <i>int </i>fx, #presetname)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> retval, <i>string </i>presetname = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetPreset(<i>MediaTrack</i> track, <i>integer</i> fx, <i>string </i>presetname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Boolean</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>String</i> presetname, <i>Int</i> presetname_sz) = RPR_TrackFX_GetPreset(track, fx, presetname, presetname_sz)</code><br><br></div>
Get the name of the preset currently showing in the <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> dropdown, or the full path to a factory preset file for VST3 plug-ins (.vstpreset). Returns false if the current FX parameters do not exactly match the preset (in other words, if the user loaded the preset but moved the knobs afterward). See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetPreset">TrackFX_SetPreset</a>.<br><br>
<a name="TrackFX_GetPresetIndex"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_GetPresetIndex(MediaTrack* track, int fx, int* numberOfPresetsOut)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_GetPresetIndex(<i>MediaTrack</i> track, <i>int </i>fx, <i>int &amp;</i>numberOfPresets)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> retval, <i>number </i>numberOfPresets = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetPresetIndex(<i>MediaTrack</i> track, <i>integer</i> fx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>Int</i> retval, <i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> numberOfPresetsOut) = RPR_TrackFX_GetPresetIndex(track, fx, numberOfPresetsOut)</code><br><br></div>
Returns current preset index, or -1 if error. numberOfPresetsOut will be set to total number of presets available. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetPresetByIndex">TrackFX_SetPresetByIndex</a><br><br>
<a name="TrackFX_GetRecChainVisible"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_GetRecChainVisible(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_GetRecChainVisible(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetRecChainVisible(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TrackFX_GetRecChainVisible(<i>MediaTrack</i> track)</code><br><br></div>
returns index of effect visible in record input chain, or -1 for chain hidden, or -2 for chain visible but no effect selected<br><br>
<a name="TrackFX_GetRecCount"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int TrackFX_GetRecCount(MediaTrack* track)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> TrackFX_GetRecCount(<i>MediaTrack</i> track)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetRecCount(<i>MediaTrack</i> track)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_TrackFX_GetRecCount(<i>MediaTrack</i> track)</code><br><br></div>
returns count of record input FX. To access record input FX, use a FX indices [0x1000000..0x1000000+n). On the master track, this accesses monitoring FX rather than record input FX.<br><br>
<a name="TrackFX_GetUserPresetFilename"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TrackFX_GetUserPresetFilename(MediaTrack* track, int fx, char* fn, int fn_sz)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TrackFX_GetUserPresetFilename(<i>MediaTrack</i> track, <i>int </i>fx, #fn)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string </i>fn = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_GetUserPresetFilename(<i>MediaTrack</i> track, <i>integer</i> fx, <i>string </i>fn)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>(<i>MediaTrack</i> track, <i>Int</i> fx, <i>String</i> fn, <i>Int</i> fn_sz) = RPR_TrackFX_GetUserPresetFilename(track, fx, fn, fn_sz)</code><br><br></div>
<a name="TrackFX_NavigatePresets"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_NavigatePresets(MediaTrack* track, int fx, int presetmove)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_NavigatePresets(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>presetmove)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_NavigatePresets(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> presetmove)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_NavigatePresets(<i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> presetmove)</code><br><br></div>
presetmove==1 activates the next preset, presetmove==-1 activates the previous preset, etc.<br><br>
<a name="TrackFX_SetEnabled"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TrackFX_SetEnabled(MediaTrack* track, int fx, bool enabled)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TrackFX_SetEnabled(<i>MediaTrack</i> track, <i>int </i>fx, <i>bool </i>enabled)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_SetEnabled(<i>MediaTrack</i> track, <i>integer</i> fx, <i>boolean</i> enabled)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TrackFX_SetEnabled(<i>MediaTrack</i> track, <i>Int</i> fx, <i>Boolean</i> enabled)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEnabled">TrackFX_GetEnabled</a><br><br>
<a name="TrackFX_SetEQBandEnabled"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_SetEQBandEnabled(MediaTrack* track, int fxidx, int bandtype, int bandidx, bool enable)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_SetEQBandEnabled(<i>MediaTrack</i> track, <i>int </i>fxidx, <i>int </i>bandtype, <i>int </i>bandidx, <i>bool </i>enable)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_SetEQBandEnabled(<i>MediaTrack</i> track, <i>integer</i> fxidx, <i>integer</i> bandtype, <i>integer</i> bandidx, <i>boolean</i> enable)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_SetEQBandEnabled(<i>MediaTrack</i> track, <i>Int</i> fxidx, <i>Int</i> bandtype, <i>Int</i> bandidx, <i>Boolean</i> enable)</code><br><br></div>
Enable or disable a ReaEQ band.<br>
Returns false if track/fxidx is not ReaEQ.<br>
Bandtype: 0=lhipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass.<br>
Bandidx: 0=first band matching bandtype, 1=2nd band matching bandtype, etc.<br>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQ">TrackFX_GetEQ</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQParam">TrackFX_GetEQParam</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetEQParam">TrackFX_SetEQParam</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQBandEnabled">TrackFX_GetEQBandEnabled</a>.<br><br>
<a name="TrackFX_SetEQParam"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_SetEQParam(MediaTrack* track, int fxidx, int bandtype, int bandidx, int paramtype, double val, bool isnorm)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_SetEQParam(<i>MediaTrack</i> track, <i>int </i>fxidx, <i>int </i>bandtype, <i>int </i>bandidx, <i>int </i>paramtype, val, <i>bool </i>isnorm)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_SetEQParam(<i>MediaTrack</i> track, <i>integer</i> fxidx, <i>integer</i> bandtype, <i>integer</i> bandidx, <i>integer</i> paramtype, <i>number</i> val, <i>boolean</i> isnorm)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_SetEQParam(<i>MediaTrack</i> track, <i>Int</i> fxidx, <i>Int</i> bandtype, <i>Int</i> bandidx, <i>Int</i> paramtype, <i>Float</i> val, <i>Boolean</i> isnorm)</code><br><br></div>
Returns false if track/fxidx is not ReaEQ. Targets a band matching bandtype.<br>
Bandtype: -1=master gain, 0=lhipass, 1=loshelf, 2=band, 3=notch, 4=hishelf, 5=lopass.<br>
Bandidx (ignored for master gain): 0=target first band matching bandtype, 1=target 2nd band matching bandtype, etc.<br>
Paramtype (ignored for master gain): 0=freq, 1=gain, 2=Q.<br>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQ">TrackFX_GetEQ</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQParam">TrackFX_GetEQParam</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetEQBandEnabled">TrackFX_GetEQBandEnabled</a>, <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_SetEQBandEnabled">TrackFX_SetEQBandEnabled</a>.<br><br>
<a name="TrackFX_SetNamedConfigParm"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_SetNamedConfigParm(MediaTrack* track, int fx, const char* parmname, const char* value)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_SetNamedConfigParm(<i>MediaTrack</i> track, <i>int </i>fx, "parmname", "value")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_SetNamedConfigParm(<i>MediaTrack</i> track, <i>integer</i> fx, <i>string</i> parmname, <i>string</i> value)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_SetNamedConfigParm(<i>MediaTrack</i> track, <i>Int</i> fx, <i>String</i> parmname, <i>String</i> value)</code><br><br></div>
sets plug-in specific named configuration value (returns true on success)<br><br>
<a name="TrackFX_SetOffline"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TrackFX_SetOffline(MediaTrack* track, int fx, bool offline)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TrackFX_SetOffline(<i>MediaTrack</i> track, <i>int </i>fx, <i>bool </i>offline)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_SetOffline(<i>MediaTrack</i> track, <i>integer</i> fx, <i>boolean</i> offline)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TrackFX_SetOffline(<i>MediaTrack</i> track, <i>Int</i> fx, <i>Boolean</i> offline)</code><br><br></div>
See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetOffline">TrackFX_GetOffline</a><br><br>
<a name="TrackFX_SetOpen"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TrackFX_SetOpen(MediaTrack* track, int fx, bool open)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TrackFX_SetOpen(<i>MediaTrack</i> track, <i>int </i>fx, <i>bool </i>open)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_SetOpen(<i>MediaTrack</i> track, <i>integer</i> fx, <i>boolean</i> open)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TrackFX_SetOpen(<i>MediaTrack</i> track, <i>Int</i> fx, <i>Boolean</i> open)</code><br><br></div>
Open this FX UI. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetOpen">TrackFX_GetOpen</a><br><br>
<a name="TrackFX_SetParam"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_SetParam(MediaTrack* track, int fx, int param, double val)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_SetParam(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>param, val)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_SetParam(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> param, <i>number</i> val)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_SetParam(<i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> val)</code><br><br></div>
<a name="TrackFX_SetParamNormalized"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_SetParamNormalized(MediaTrack* track, int fx, int param, double value)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_SetParamNormalized(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>param, value)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_SetParamNormalized(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> param, <i>number</i> value)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_SetParamNormalized(<i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> param, <i>Float</i> value)</code><br><br></div>
<a name="TrackFX_SetPinMappings"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_SetPinMappings(MediaTrack* tr, int fx, int isoutput, int pin, int low32bits, int hi32bits)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_SetPinMappings(<i>MediaTrack</i> tr, <i>int </i>fx, <i>int </i>isoutput, <i>int </i>pin, <i>int </i>low32bits, <i>int </i>hi32bits)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_SetPinMappings(<i>MediaTrack</i> tr, <i>integer</i> fx, <i>integer</i> isoutput, <i>integer</i> pin, <i>integer</i> low32bits, <i>integer</i> hi32bits)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_SetPinMappings(<i>MediaTrack</i> tr, <i>Int</i> fx, <i>Int</i> isoutput, <i>Int</i> pin, <i>Int</i> low32bits, <i>Int</i> hi32bits)</code><br><br></div>
sets the channel mapping bitmask for a particular pin. returns false if unsupported (not all types of plug-ins support this capability)<br><br>
<a name="TrackFX_SetPreset"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_SetPreset(MediaTrack* track, int fx, const char* presetname)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_SetPreset(<i>MediaTrack</i> track, <i>int </i>fx, "presetname")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_SetPreset(<i>MediaTrack</i> track, <i>integer</i> fx, <i>string</i> presetname)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_SetPreset(<i>MediaTrack</i> track, <i>Int</i> fx, <i>String</i> presetname)</code><br><br></div>
Activate a preset with the name shown in the <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> dropdown. Full paths to .vstpreset files are also supported for VST3 plug-ins. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetPreset">TrackFX_GetPreset</a>.<br><br>
<a name="TrackFX_SetPresetByIndex"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool TrackFX_SetPresetByIndex(MediaTrack* track, int fx, int idx)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> TrackFX_SetPresetByIndex(<i>MediaTrack</i> track, <i>int </i>fx, <i>int </i>idx)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_SetPresetByIndex(<i>MediaTrack</i> track, <i>integer</i> fx, <i>integer</i> idx)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_TrackFX_SetPresetByIndex(<i>MediaTrack</i> track, <i>Int</i> fx, <i>Int</i> idx)</code><br><br></div>
Sets the preset idx, or the factory preset (idx==-2), or the default user preset (idx==-1). Returns true on success. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#TrackFX_GetPresetIndex">TrackFX_GetPresetIndex</a>.<br><br>
<a name="TrackFX_Show"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TrackFX_Show(MediaTrack* track, int index, int showFlag)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TrackFX_Show(<i>MediaTrack</i> track, <i>int </i>index, <i>int </i>showFlag)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackFX_Show(<i>MediaTrack</i> track, <i>integer</i> index, <i>integer</i> showFlag)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TrackFX_Show(<i>MediaTrack</i> track, <i>Int</i> index, <i>Int</i> showFlag)</code><br><br></div>
showflag=0 for hidechain, =1 for show chain(index valid), =2 for hide floating window(index valid), =3 for show floating window (index valid)<br><br>
<a name="TrackList_AdjustWindows"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TrackList_AdjustWindows(bool isMinor)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TrackList_AdjustWindows(<i>bool </i>isMinor)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackList_AdjustWindows(<i>boolean</i> isMinor)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TrackList_AdjustWindows(<i>Boolean</i> isMinor)</code><br><br></div>
<a name="TrackList_UpdateAllExternalSurfaces"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void TrackList_UpdateAllExternalSurfaces()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>TrackList_UpdateAllExternalSurfaces()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.TrackList_UpdateAllExternalSurfaces()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_TrackList_UpdateAllExternalSurfaces()</code><br><br></div>
<a name="Undo_BeginBlock"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Undo_BeginBlock()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Undo_BeginBlock()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_BeginBlock()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Undo_BeginBlock()</code><br><br></div>
call to start a new block<br><br>
<a name="Undo_BeginBlock2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Undo_BeginBlock2(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Undo_BeginBlock2(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_BeginBlock2(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Undo_BeginBlock2(<i>ReaProject</i> proj)</code><br><br></div>
call to start a new block<br><br>
<a name="Undo_CanRedo2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* Undo_CanRedo2(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  Undo_CanRedo2(#retval, <i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_CanRedo2(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_Undo_CanRedo2(<i>ReaProject</i> proj)</code><br><br></div>
returns string of next action,if able,NULL if not<br><br>
<a name="Undo_CanUndo2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>const char* Undo_CanUndo2(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>bool  Undo_CanUndo2(#retval, <i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>string</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_CanUndo2(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>String</i>  RPR_Undo_CanUndo2(<i>ReaProject</i> proj)</code><br><br></div>
returns string of last action,if able,NULL if not<br><br>
<a name="Undo_DoRedo2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int Undo_DoRedo2(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> Undo_DoRedo2(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_DoRedo2(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_Undo_DoRedo2(<i>ReaProject</i> proj)</code><br><br></div>
nonzero if success<br><br>
<a name="Undo_DoUndo2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>int Undo_DoUndo2(ReaProject* proj)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>int </i> Undo_DoUndo2(<i>ReaProject</i> proj)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>integer</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_DoUndo2(<i>ReaProject</i> proj)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Int</i>  RPR_Undo_DoUndo2(<i>ReaProject</i> proj)</code><br><br></div>
nonzero if success<br><br>
<a name="Undo_EndBlock"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Undo_EndBlock(const char* descchange, int extraflags)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Undo_EndBlock("descchange", <i>int </i>extraflags)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_EndBlock(<i>string</i> descchange, <i>integer</i> extraflags)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Undo_EndBlock(<i>String</i> descchange, <i>Int</i> extraflags)</code><br><br></div>
call to end the block,with extra flags if any,and a de<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>ion<br><br>
<a name="Undo_EndBlock2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Undo_EndBlock2(ReaProject* proj, const char* descchange, int extraflags)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Undo_EndBlock2(<i>ReaProject</i> proj, "descchange", <i>int </i>extraflags)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_EndBlock2(<i>ReaProject</i> proj, <i>string</i> descchange, <i>integer</i> extraflags)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Undo_EndBlock2(<i>ReaProject</i> proj, <i>String</i> descchange, <i>Int</i> extraflags)</code><br><br></div>
call to end the block,with extra flags if any,and a de<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>ion<br><br>
<a name="Undo_OnStateChange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Undo_OnStateChange(const char* descchange)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Undo_OnStateChange("descchange")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_OnStateChange(<i>string</i> descchange)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Undo_OnStateChange(<i>String</i> descchange)</code><br><br></div>
limited state change to items<br><br>
<a name="Undo_OnStateChange2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Undo_OnStateChange2(ReaProject* proj, const char* descchange)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Undo_OnStateChange2(<i>ReaProject</i> proj, "descchange")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_OnStateChange2(<i>ReaProject</i> proj, <i>string</i> descchange)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Undo_OnStateChange2(<i>ReaProject</i> proj, <i>String</i> descchange)</code><br><br></div>
limited state change to items<br><br>
<a name="Undo_OnStateChange_Item"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Undo_OnStateChange_Item(ReaProject* proj, const char* name, MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Undo_OnStateChange_Item(<i>ReaProject</i> proj, "name", <i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_OnStateChange_Item(<i>ReaProject</i> proj, <i>string</i> name, <i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Undo_OnStateChange_Item(<i>ReaProject</i> proj, <i>String</i> name, <i>MediaItem</i> item)</code><br><br></div>
<a name="Undo_OnStateChangeEx"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Undo_OnStateChangeEx(const char* descchange, int whichStates, int trackparm)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Undo_OnStateChangeEx("descchange", <i>int </i>whichStates, <i>int </i>trackparm)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_OnStateChangeEx(<i>string</i> descchange, <i>integer</i> whichStates, <i>integer</i> trackparm)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Undo_OnStateChangeEx(<i>String</i> descchange, <i>Int</i> whichStates, <i>Int</i> trackparm)</code><br><br></div>
trackparm=-1 by default,or if updating one fx chain,you can specify track index<br><br>
<a name="Undo_OnStateChangeEx2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void Undo_OnStateChangeEx2(ReaProject* proj, const char* descchange, int whichStates, int trackparm)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>Undo_OnStateChangeEx2(<i>ReaProject</i> proj, "descchange", <i>int </i>whichStates, <i>int </i>trackparm)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.Undo_OnStateChangeEx2(<i>ReaProject</i> proj, <i>string</i> descchange, <i>integer</i> whichStates, <i>integer</i> trackparm)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_Undo_OnStateChangeEx2(<i>ReaProject</i> proj, <i>String</i> descchange, <i>Int</i> whichStates, <i>Int</i> trackparm)</code><br><br></div>
trackparm=-1 by default,or if updating one fx chain,you can specify track index<br><br>
<a name="UpdateArrange"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void UpdateArrange()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>UpdateArrange()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.UpdateArrange()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_UpdateArrange()</code><br><br></div>
Redraw the arrange view<br><br>
<a name="UpdateItemInProject"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void UpdateItemInProject(MediaItem* item)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>UpdateItemInProject(<i>MediaItem</i> item)</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.UpdateItemInProject(<i>MediaItem</i> item)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_UpdateItemInProject(<i>MediaItem</i> item)</code><br><br></div>
<a name="UpdateTimeline"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void UpdateTimeline()</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>UpdateTimeline()</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.UpdateTimeline()</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_UpdateTimeline()</code><br><br></div>
Redraw the arrange view and ruler<br><br>
<a name="ValidatePtr"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool ValidatePtr(void* pointer, const char* ctypename)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> ValidatePtr(<i>void*</i> pointer, "ctypename")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ValidatePtr(<i>identifier</i> pointer, <i>string</i> ctypename)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_ValidatePtr(<i>void</i> pointer, <i>String</i> ctypename)</code><br><br></div>
see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#ValidatePtr2">ValidatePtr2</a><br><br>
<a name="ValidatePtr2"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>bool ValidatePtr2(ReaProject* proj, void* pointer, const char* ctypename)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code><i>bool </i> ValidatePtr2(<i>ReaProject</i> proj, <i>void*</i> pointer, "ctypename")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><i>boolean</i> <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ValidatePtr2(<i>ReaProject</i> proj, <i>identifier</i> pointer, <i>string</i> ctypename)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code><i>Boolean</i>  RPR_ValidatePtr2(<i>ReaProject</i> proj, <i>void</i> pointer, <i>String</i> ctypename)</code><br><br></div>
Return true if the pointer is a valid object of the right type in proj (proj is ignored if pointer is itself a project). Supported types are: ReaProject*, MediaTrack*, MediaItem*, MediaItem_Take*, TrackEnvelope* and PCM_source*.<br><br>
<a name="ViewPrefs"><hr></a><br>
<div class="c_func"><span class="all_view">C: </span><code>void ViewPrefs(int page, const char* pageByName)</code><br><br></div>
<div class="e_func"><span class="all_view">EEL: </span><code>ViewPrefs(<i>int </i>page, "pageByName")</code><br><br></div>
<div class="l_func"><span class="all_view">Lua: </span><code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.ViewPrefs(<i>integer</i> page, <i>string</i> pageByName)</code><br><br></div>
<div class="p_func"><span class="all_view">Python: </span><code>RPR_ViewPrefs(<i>Int</i> page, <i>String</i> pageByName)</code><br><br></div>
Opens the prefs to a page, use pageByName if page is 0.<br><br>
<div class="e_funcs"><br><br><hr><br><h2>Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/EEL Built-in Function List</h2>
<a name="eel_abs"><hr></a><br>
EEL: <code>abs(value)</code><br><br>Returns the absolute value of the parameter.<br><br><a name="eel_acos"><hr></a><br>
EEL: <code>acos(value)</code><br><br>Returns the arc cosine of the value specified (return value is in radians). If the parameter is not between -1.0 and 1.0 inclusive, the return value is undefined.<br><br><a name="eel_asin"><hr></a><br>
EEL: <code>asin(value)</code><br><br>Returns the arc sine of the value specified (return value is in radians). If the parameter is not between -1.0 and 1.0 inclusive, the return value is undefined.<br><br><a name="eel_atan"><hr></a><br>
EEL: <code>atan(value)</code><br><br>Returns the arc tangent of the value specified (return value is in radians). If the parameter is not between -1.0 and 1.0 inclusive, the return value is undefined.<br><br><a name="eel_atan2"><hr></a><br>
EEL: <code>atan2(numerator,denominator)</code><br><br>Returns the arc tangent of the numerator divided by the denominator, allowing the denominator to be 0, and using their signs to produce a more meaningful result.<br><br><a name="eel_atexit"><hr></a><br>
EEL: <code>atexit("code")</code><br><br>Adds code to be executed when the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> finishes or is ended by the user. Typically used to clean up after the user terminates defer() or runloop() code.<br><br><a name="eel_ceil"><hr></a><br>
EEL: <code>ceil(value)</code><br><br>Returns the value rounded to the next highest integer (ceil(3.1)==4, ceil(-3.9)==-3).<br><br><a name="eel_convolve_c"><hr></a><br>
EEL: <code>convolve_c(dest,src,size)</code><br><br>Multiplies each of size complex pairs in dest by the complex pairs in src. Often used for convolution.<br><br><a name="eel_cos"><hr></a><br>
EEL: <code>cos(angle)</code><br><br>Returns the cosine of the angle specified (specified in radians).<br><br><a name="eel_defer"><hr></a><br>
EEL: <code>defer("code")</code><br><br>Adds code to be called back by <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>. Used to create persistent Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s that continue to run and respond to input, while the user does other tasks. Identical to runloop().<br>Note that no undo point will be automatically created when the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> finishes, unless you create it explicitly.<br><br><a name="eel_eval"><hr></a><br>
EEL: <code>eval("code")</code><br><br>Executes code passed in. Code can use functions, but functions created in code can't be used elsewhere.<br><br><a name="eel_exp"><hr></a><br>
EEL: <code>exp(exponent)</code><br><br>Returns the number e ($e, approximately 2.718) raised to the parameter-th power. This function is significantly faster than pow() or the ^ operator.<br><br><a name="eel_extension_api"><hr></a><br>
EEL: <code>extension_api("function_name"[,...])</code><br><br>Used to call functions exported by extension plugins. The first parameter must be the exported function name, then its own parameters (as if the function was called directly).<br><br><a name="eel_fclose"><hr></a><br>
EEL: <code>fclose(fp)</code><br><br>Closes a file previously opened with fopen().<br><br><a name="eel_feof"><hr></a><br>
EEL: <code>feof(fp)</code><br><br>Returns nonzero if the file fp is at the end of file.<br><br><a name="eel_fflush"><hr></a><br>
EEL: <code>fflush(fp)</code><br><br>If file fp is open for writing, flushes out any buffered data to disk.<br><br><a name="eel_fft"><hr></a><br>
EEL: <code>fft(buffer,size)</code><br><br>Performs a FFT on the data in the local memory buffer at the offset specified by the first parameter. The size of the FFT is specified by the second parameter, which must be 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, or 32768. The outputs are permuted, so if you plan to use them in-order, call fft_permute(buffer, size) before and fft_ipermute(buffer,size) after your in-order use. Your inputs or outputs will need to be scaled down by 1/size, if used.<br>Note that fft()/ifft() require real / imaginary input pairs, so a 256 point FFT actually works with 512 items.<br>Note that fft()/ifft() must NOT cross a 65,536 item boundary, so be sure to specify the offset accordingly.<br><br><a name="eel_fft_ipermute"><hr></a><br>
EEL: <code>fft_ipermute(buffer,size)</code><br><br>Permute the input for ifft(), taking bands from in-order to the order ifft() requires. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#fft">fft</a>() for more information.<br><br><a name="eel_fft_permute"><hr></a><br>
EEL: <code>fft_permute(buffer,size)</code><br><br>Permute the output of fft() to have bands in-order. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#fft">fft</a>() for more information.<br><br><a name="eel_fft_real"><hr></a><br>
EEL: <code>fft_real(buffer,size)</code><br><br>Performs an FFT, but takes size input samples and produces size/2 complex output pairs. Usually used along with fft_permute(size/2). Inputs/outputs will need to be scaled by 0.5/size.<br><br><a name="eel_fgetc"><hr></a><br>
EEL: <code>fgetc(fp)</code><br><br>Reads a character from file fp, returns -1 if EOF.<br><br><a name="eel_fgets"><hr></a><br>
EEL: <code>fgets(fp,#str)</code><br><br>Reads a line from file fp into #str. Returns length of #str read.<br><br><a name="eel_floor"><hr></a><br>
EEL: <code>floor(value)</code><br><br>Returns the value rounded to the next lowest integer (floor(3.9)==3, floor(-3.1)==-4).<br><br><a name="eel_fopen"><hr></a><br>
EEL: <code>fopen("fn","mode")</code><br><br>Opens a file "fn" with mode "mode". For read, use "r" or "rb", write "w" or "wb". Returns a positive integer on success.<br><br><a name="eel_fprintf"><hr></a><br>
EEL: <code>fprintf(fp,"format"[,...])</code><br><br>Formats a string and writes it to file fp. For more information on format specifiers, see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#sprintf">sprintf</a>(). Returns bytes written to file.<br><br><a name="eel_fread"><hr></a><br>
EEL: <code>fread(fp,#str,length)</code><br><br>Reads from file fp into #str, up to length bytes. Returns actual length read, or negative if error.<br><br><a name="eel_freembuf"><hr></a><br>
EEL: <code>freembuf(address)</code><br><br>Hints the runtime that memory above the address specified may no longer be used. The runtime may, at its leisure, choose to lose the contents of memory above the address specified.<br><br><a name="eel_fseek"><hr></a><br>
EEL: <code>fseek(fp,offset,whence)</code><br><br>Seeks file fp, offset bytes from whence reference. Whence negative specifies start of file, positive whence specifies end of file, and zero whence specifies current file position.<br><br><a name="eel_ftell"><hr></a><br>
EEL: <code>ftell(fp)</code><br><br>Retunrs the current file position.<br><br><a name="eel_fwrite"><hr></a><br>
EEL: <code>fwrite(fp,#str,len)</code><br><br>Writes up to len characters of #str to file fp. If len is less than 1, the full contents of #str will be written. Returns the number of bytes written to file.<br><br><a name="eel_get_action_context"><hr></a><br>
EEL: <code>get_action_context(#filename,sectionID,cmdID,mode,resolution,val)</code><br><br>Queries contextual information about the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>, typically MIDI/OSC input values.<br>Returns true if a new value has been updated.<br>val will be set to a relative or absolute value depending on mode (=0: absolute mode, &gt;0: relative modes). resolution=127 for 7-bit resolution, =16383 for 14-bit resolution.<br>Notes: sectionID, and cmdID will be set to -1 if the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> is not part of the action list. mode, resolution and val will be set to -1 if the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> was not triggered via MIDI/OSC.<br><br><a name="eel_gfx_variables"><hr></a><br>
EEL: <code>gfx VARIABLES</code><br><br>The following global variables are special and will be used by the graphics system:<br><br><ul><li>gfx_r, gfx_g, gfx_b, gfx_a - These represent the current red, green, blue, and alpha components used by drawing operations (0.0..1.0). <br></li><li>gfx_w, gfx_h - These are set to the current width and height of the UI framebuffer. <br></li><li>gfx_x, gfx_y - These set the "current" graphics position in x,y. You can set these yourselves, and many of the drawing functions update them as well. <br></li><li>gfx_mode - Set to 0 for default options. Add 1.0 for additive blend mode (if you wish to do subtractive, set gfx_a to negative and use gfx_mode as additive). Add 2.0 to disable source alpha for gfx_blit(). Add 4.0 to disable filtering for gfx_blit(). <br></li><li>gfx_clear - If set to a value greater than -1.0, this will result in the framebuffer being cleared to that color. the color for this one is packed RGB (0..255), i.e. red+green*256+blue*65536. The default is 0 (black). <br></li><li>gfx_dest - Defaults to -1, set to 0..1024-1 to have drawing operations go to an offscreen buffer (or loaded image).<br></li><li>gfx_texth - Set to the height of a line of text in the current font. Do not modify this variable.<br></li><li>gfx_ext_retina - If set to 1.0 on initialization, will be updated to 2.0 if high resolution display is supported, and if so gfx_w/gfx_h/etc will be doubled.<br></li><li>mouse_x, mouse_y - mouse_x and mouse_y are set to the coordinates of the mouse relative to the graphics window.<br></li><li>mouse_wheel, mouse_hwheel - mouse wheel (and horizontal wheel) positions. These will change typically by 120 or a multiple thereof, the caller should clear the state to 0 after reading it.</li><li>mouse_cap is a bitfield of mouse and keyboard modifier state.<ul><li>1: left mouse button<br></li><li>2: right mouse button<br></li><li>4: Command key<br></li><li>8: Shift key<br></li><li>16: Option key<br></li><li>32: Control key<br></li><li>64: middle mouse button<br></li></ul></li></ul><br><br><a name="eel_gfx_arc"><hr></a><br>
EEL: <code>gfx_arc(x,y,r,ang1,ang2[,antialias])</code><br><br>Draws an arc of the circle centered at x,y, with ang1/ang2 being specified in radians.<br><br><a name="eel_gfx_blit"><hr></a><br>
EEL: <code>gfx_blit(source, scale, rotation[, srcx, srcy, srcw, srch, destx, desty, destw, desth, rotxoffs, rotyoffs])</code><br><br>srcx/srcy/srcw/srch specify the source rectangle (if omitted srcw/srch default to image size), destx/desty/destw/desth specify dest rectangle (if not specified, these will default to reasonable defaults -- destw/desth default to srcw/srch * scale). <br><br><a name="eel_gfx_blit"><hr></a><br>
EEL: <code>gfx_blit(source,scale,rotation)</code><br><br>If three parameters are specified, copies the entirity of the source bitmap to gfx_x,gfx_y using current opacity and copy mode (set with gfx_a, gfx_mode). You can specify scale (1.0 is unscaled) and rotation (0.0 is not rotated, angles are in radians).<br>For the "source" parameter specify -1 to use the main framebuffer as source, or an image index (see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#gfx_loadimg">gfx_loadimg</a>()).<br><br><a name="eel_gfx_blitext"><hr></a><br>
EEL: <code>gfx_blitext(source,coordinatelist,rotation)</code><br><br>Deprecated, use gfx_blit instead.<br><br><a name="eel_gfx_blurto"><hr></a><br>
EEL: <code>gfx_blurto(x,y)</code><br><br>Blurs the region of the screen between gfx_x,gfx_y and x,y, and updates gfx_x,gfx_y to x,y.<br><br><a name="eel_gfx_circle"><hr></a><br>
EEL: <code>gfx_circle(x,y,r[,fill,antialias])</code><br><br>Draws a circle, optionally filling/antialiasing. <br><br><a name="eel_gfx_clienttoscreen"><hr></a><br>
EEL: <code>gfx_clienttoscreen(x,y)</code><br><br>Converts client coordinates x,y to screen coordinates.<br><br><a name="eel_gfx_deltablit"><hr></a><br>
EEL: <code>gfx_deltablit(srcimg,srcs,srct,srcw,srch,destx,desty,destw,desth,dsdx,dtdx,dsdy,dtdy,dsdxdy,dtdxdy[,usecliprect=1])</code><br><br>Blits from srcimg(srcx,srcy,srcw,srch) to destination (destx,desty,destw,desth). Source texture coordinates are s/t, dsdx represents the change in s coordinate for each x pixel, dtdy represents the change in t coordinate for each y pixel, etc. dsdxdy represents the change in dsdx for each line. If usecliprect is specified and 0, then srcw/srch are ignored.<br><br><a name="eel_gfx_dock"><hr></a><br>
EEL: <code>gfx_dock(v[,wx,wy,ww,wh])</code><br><br>Call with v=-1 to query docked state, otherwise v&gt;=0 to set docked state. State is &amp;1 if docked, second byte is docker index (or last docker index if undocked). If wx-wh are specified, they will be filled with the undocked window position/size<br><br><a name="eel_gfx_drawchar"><hr></a><br>
EEL: <code>gfx_drawchar(char)</code><br><br>Draws the character (can be a numeric ASCII code as well), to gfx_x, gfx_y, and moves gfx_x over by the size of the character.<br><br><a name="eel_gfx_drawnumber"><hr></a><br>
EEL: <code>gfx_drawnumber(n,ndigits)</code><br><br>Draws the number n with ndigits of precision to gfx_x, gfx_y, and updates gfx_x to the right side of the drawing. The text height is gfx_texth.<br><br><a name="eel_gfx_drawstr"><hr></a><br>
EEL: <code>gfx_drawstr("str"[,flags,right,bottom])</code><br><br>Draws a string at gfx_x, gfx_y, and updates gfx_x/gfx_y so that subsequent draws will occur in a similar place.<br><br>If flags, right ,bottom passed in:<br><li>flags&amp;1: center horizontally<br></li><li>flags&amp;2: right justify<br></li><li>flags&amp;4: center vertically<br></li><li>flags&amp;8: bottom justify<br></li><li>flags&amp;256: ignore right/bottom, otherwise text is clipped to (gfx_x, gfx_y, right, bottom)<br><br><a name="eel_gfx_getchar"><hr></a><br>
EEL: <code>gfx_getchar([char])</code><br><br>If char is 0 or omitted, returns a character from the keyboard queue, or 0 if no character is available, or -1 if the graphics window is not open. If char is specified and nonzero, that character's status will be checked, and the function will return greater than 0 if it is pressed.<br><br>Common values are standard ASCII, such as 'a', 'A', '=' and '1', but for many keys multi-byte values are used, including 'home', 'up', 'down', 'left', 'rght', 'f1'.. 'f12', 'pgup', 'pgdn', 'ins', and 'del'. <br><br>Modified and special keys can also be returned, including:<ul><br><li>Ctrl/Cmd+A..Ctrl+Z as 1..26<br></li><li>Ctrl/Cmd+Alt+A..Z as 257..282<br></li><li>Alt+A..Z as 'A'+256..'Z'+256<br></li><li>27 for ESC<br></li><li>13 for Enter<br></li><li>' ' for space<br></li><li>65536 for query of special flags, returns: &amp;1 (supported), &amp;2=window has focus, &amp;4=window is visible<br></li></ul><br><br><a name="eel_gfx_getdropfile"><hr></a><br>
EEL: <code>gfx_getdropfile(idx[,#str])</code><br><br>Enumerates any drag/dropped files. call gfx_dropfile(-1) to clear the list when finished. Returns 1 if idx is valid, 0 if idx is out of range.<br><br><a name="eel_gfx_getfont"><hr></a><br>
EEL: <code>gfx_getfont([#str])</code><br><br>Returns current font index. If a string is passed, it will receive the actual font face used by this font, if available.<br><br><a name="eel_gfx_getimgdim"><hr></a><br>
EEL: <code>gfx_getimgdim(image,w,h)</code><br><br>Retreives the dimensions of image (representing a filename: index number) into w and h. Sets these values to 0 if an image failed loading (or if the filename index is invalid).<br><br><a name="eel_gfx_getpixel"><hr></a><br>
EEL: <code>gfx_getpixel(r,g,b)</code><br><br>Gets the value of the pixel at gfx_x,gfx_y into r,g,b. <br><br><a name="eel_gfx_gradrect"><hr></a><br>
EEL: <code>gfx_gradrect(x,y,w,h, r,g,b,a[, drdx, dgdx, dbdx, dadx, drdy, dgdy, dbdy, dady])</code><br><br>Fills a gradient rectangle with the color and alpha specified. drdx-dadx reflect the adjustment (per-pixel) applied for each pixel moved to the right, drdy-dady are the adjustment applied for each pixel moved toward the bottom. Normally drdx=adjustamount/w, drdy=adjustamount/h, etc.<br><br><a name="eel_gfx_init"><hr></a><br>
EEL: <code>gfx_init("name"[,width,height,dockstate,xpos,ypos])</code><br><br>Initializes the graphics window with title name. Suggested width and height can be specified.<br><br>Once the graphics window is open, gfx_update() should be called periodically. <br><br><a name="eel_gfx_line"><hr></a><br>
EEL: <code>gfx_line(x,y,x2,y2[,aa])</code><br><br>Draws a line from x,y to x2,y2, and if aa is not specified or 0.5 or greater, it will be antialiased. <br><br><a name="eel_gfx_lineto"><hr></a><br>
EEL: <code>gfx_lineto(x,y[,aa])</code><br><br>Draws a line from gfx_x,gfx_y to x,y. If aa is 0.5 or greater, then antialiasing is used. Updates gfx_x and gfx_y to x,y.<br><br><a name="eel_gfx_loadimg"><hr></a><br>
EEL: <code>gfx_loadimg(image,"filename")</code><br><br>Load image from filename into slot 0..1024-1 specified by image. Returns the image index if success, otherwise -1 if failure. The image will be resized to the dimensions of the image file. <br><br><a name="eel_gfx_measurechar"><hr></a><br>
EEL: <code>gfx_measurechar(character,&amp;w,&amp;h)</code><br><br>Measures the drawing dimensions of a character with the current font (as set by gfx_setfont). <br><br><a name="eel_gfx_measurestr"><hr></a><br>
EEL: <code>gfx_measurestr("str",&amp;w,&amp;h)</code><br><br>Measures the drawing dimensions of a string with the current font (as set by gfx_setfont). <br><br><a name="eel_gfx_muladdrect"><hr></a><br>
EEL: <code>gfx_muladdrect(x,y,w,h,mul_r,mul_g,mul_b[,mul_a,add_r,add_g,add_b,add_a])</code><br><br>Multiplies each pixel by mul_* and adds add_*, and updates in-place. Useful for changing brightness/contrast, or other effects.<br><br><a name="eel_gfx_printf"><hr></a><br>
EEL: <code>gfx_printf("format"[, ...])</code><br><br>Formats and draws a string at gfx_x, gfx_y, and updates gfx_x/gfx_y accordingly (the latter only if the formatted string contains newline). For more information on format strings, see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#sprintf">sprintf</a>()<br><br><a name="eel_gfx_quit"><hr></a><br>
EEL: <code>gfx_quit()</code><br><br>Closes the graphics window.<br><br><a name="eel_gfx_rect"><hr></a><br>
EEL: <code>gfx_rect(x,y,w,h[,filled])</code><br><br>Fills a rectangle at x,y, w,h pixels in dimension, filled by default. <br><br><a name="eel_gfx_rectto"><hr></a><br>
EEL: <code>gfx_rectto(x,y)</code><br><br>Fills a rectangle from gfx_x,gfx_y to x,y. Updates gfx_x,gfx_y to x,y. <br><br><a name="eel_gfx_roundrect"><hr></a><br>
EEL: <code>gfx_roundrect(x,y,w,h,radius[,antialias])</code><br><br>Draws a rectangle with rounded corners. <br><br><a name="eel_gfx_screentoclient"><hr></a><br>
EEL: <code>gfx_screentoclient(x,y)</code><br><br>Converts screen coordinates x,y to client coordinates.<br><br><a name="eel_gfx_set"><hr></a><br>
EEL: <code>gfx_set(r[,g,b,a,mode,dest])</code><br><br>Sets gfx_r/gfx_g/gfx_b/gfx_a/gfx_mode, sets gfx_dest if final parameter specified<br><br><a name="eel_gfx_setcursor"><hr></a><br>
EEL: <code>gfx_setcursor(resource_id,custom_cursor_name)</code><br><br>Sets the mouse cursor. resource_id is a value like 32512 (for an arrow cursor), custom_cursor_name is a string like "arrow" (for the <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> custom arrow cursor). resource_id must be nonzero, but custom_cursor_name is optional.<br><br><a name="eel_gfx_setfont"><hr></a><br>
EEL: <code>gfx_setfont(idx[,"fontface", sz, flags])</code><br><br>Can select a font and optionally configure it. idx=0 for default bitmapped font, no configuration is possible for this font. idx=1..16 for a configurable font, specify fontface such as "Arial", sz of 8-100, and optionally specify flags, which is a multibyte character, which can include 'i' for italics, 'u' for underline, or 'b' for bold. These flags may or may not be supported depending on the font and OS. After calling gfx_setfont(), gfx_texth may be updated to reflect the new average line height.<br><br><a name="eel_gfx_setimgdim"><hr></a><br>
EEL: <code>gfx_setimgdim(image,w,h)</code><br><br>Resize image referenced by index 0..1024-1, width and height must be 0-2048. The contents of the image will be undefined after the resize.<br><br><a name="eel_gfx_setpixel"><hr></a><br>
EEL: <code>gfx_setpixel(r,g,b)</code><br><br>Writes a pixel of r,g,b to gfx_x,gfx_y.<br><br><a name="eel_gfx_showmenu"><hr></a><br>
EEL: <code>gfx_showmenu("str")</code><br><br>Shows a popup menu at gfx_x,gfx_y. str is a list of fields separated by | characters. Each field represents a menu item.<br>Fields can start with special characters:<br><br># : grayed out<br>! : checked<br>&gt; : this menu item shows a submenu<br>&lt; : last item in the current submenu<br><br>An empty field will appear as a separator in the menu. gfx_showmenu returns 0 if the user selected nothing from the menu, 1 if the first field is selected, etc.<br>Example:<br><br>gfx_showmenu("first item, followed by separator||!second item, checked|&gt;third item which spawns a submenu|#first item in submenu, grayed out|&lt;second and last item in submenu|fourth item in top menu")<br><br><a name="eel_gfx_transformblit"><hr></a><br>
EEL: <code>gfx_transformblit(srcimg,destx,desty,destw,desth,div_w,div_h,table)</code><br><br>Blits to destination at (destx,desty), size (destw,desth). div_w and div_h should be 2..64, and table should point to a table of 2*div_w*div_h values (this table must not cross a 65536 item boundary). Each pair in the table represents a S,T coordinate in the source image, and the table is treated as a left-right, top-bottom list of texture coordinates, which will then be rendered to the destination.<br><br><a name="eel_gfx_triangle"><hr></a><br>
EEL: <code>gfx_triangle(x1,y1,x2,y2,x3,y3[x4,y4...])</code><br><br>Draws a filled triangle, or any convex polygon. <br><br><a name="eel_gfx_update"><hr></a><br>
EEL: <code>gfx_update()</code><br><br>Updates the graphics display, if opened<br><br><a name="eel_ifft"><hr></a><br>
EEL: <code>ifft(buffer,size)</code><br><br>Perform an inverse FFT. For more information see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#fft">fft</a>().<br><br><a name="eel_ifft_real"><hr></a><br>
EEL: <code>ifft_real(buffer,size)</code><br><br>Performs an inverse FFT, but takes size/2 complex input pairs and produces size real output values. Usually used along with fft_ipermute(size/2).<br><br><a name="eel_invsqrt"><hr></a><br>
EEL: <code>invsqrt(value)</code><br><br>Returns a fast inverse square root (1/sqrt(x)) approximation of the parameter.<br><br><a name="eel_log"><hr></a><br>
EEL: <code>log(value)</code><br><br>Returns the natural logarithm (base e) of the parameter. If the value is not greater than 0, the return value is undefined.<br><br><a name="eel_log10"><hr></a><br>
EEL: <code>log10(value)</code><br><br>Returns the base-10 logarithm of the parameter. If the value is not greater than 0, the return value is undefined.<br><br><a name="eel_loop"><hr></a><br>
EEL: <code>loop(count,expression)</code><br><br>Evaluates count once, and then executes expression count, but not more than 1048576, times.<br><br><a name="eel_match"><hr></a><br>
EEL: <code>match("needle","haystack"[, ...])</code><br><br>Searches for the first parameter in the second parameter, using a simplified regular expression syntax.<ul><br><li>* = match 0 or more characters<br></li><li>*? = match 0 or more characters, lazy<br></li><li>+ = match 1 or more characters<br></li><li>+? = match 1 or more characters, lazy<br></li><li>? = match one character<br></li></ul><br>You can also use format specifiers to match certain types of data, and optionally put that into a variable:<ul><br><li>%s means 1 or more chars<br></li><li>%0s means 0 or more chars<br></li><li>%5s means exactly 5 chars<br></li><li>%5-s means 5 or more chars<br></li><li>%-10s means 1-10 chars<br></li><li>%3-5s means 3-5 chars<br></li><li>%0-5s means 0-5 chars<br></li><li>%x, %d, %u, and %f are available for use similarly<br></li><li>%c can be used, but can't take any length modifiers<br></li><li>Use uppercase (%S, %D, etc) for lazy matching<br></li></ul><br>See also sprintf() for other notes, including specifying direct variable references via {}.<br><br><a name="eel_matchi"><hr></a><br>
EEL: <code>matchi("needle","haystack"[, ...])</code><br><br>Case-insensitive version of match().<br><br><a name="eel_max"><hr></a><br>
EEL: <code>max(&amp;value,&amp;value)</code><br><br>Returns (by reference) the maximum value of the two parameters. Since max() returns by reference, expressions such as max(x,y) = 5 are possible.<br><br><a name="eel_mem_get_values"><hr></a><br>
EEL: <code>mem_get_values(offset, ...)</code><br><br>Reads values from memory starting at offset into variables specified. Slower than regular memory reads for less than a few variables, faster for more than a few. Undefined behavior if used with more than 32767 variables.<br><br><a name="eel_mem_set_values"><hr></a><br>
EEL: <code>mem_set_values(offset, ...)</code><br><br>Writes values to memory starting at offset from variables specified. Slower than regular memory writes for less than a few variables, faster for more than a few. Undefined behavior if used with more than 32767 variables.<br><br><a name="eel_memcpy"><hr></a><br>
EEL: <code>memcpy(dest,src,length)</code><br><br>Copies length items of memory from src to dest. Regions are permitted to overlap.<br><br><a name="eel_memset"><hr></a><br>
EEL: <code>memset(offset,value,length)</code><br><br>Sets length items of memory at offset to value.<br><br><a name="eel_min"><hr></a><br>
EEL: <code>min(&amp;value,&amp;value)</code><br><br>Returns (by reference) the minimum value of the two parameters. Since min() returns by reference, expressions such as min(x,y) = 5 are possible.<br><br><a name="eel_printf"><hr></a><br>
EEL: <code>printf("format"[, ...])</code><br><br>Output formatted string to system-specific destination, see <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#sprintf">sprintf</a>() for more information<br><br><a name="eel_rand"><hr></a><br>
EEL: <code>rand([max])</code><br><br>Returns a psuedorandom real number between 0 and the parameter, inclusive. If the parameter is omitted or less than 1.0, 1.0 is used as a maximum instead.<br><br><a name="eel_runloop"><hr></a><br>
EEL: <code>runloop("code")</code><br><br>Adds code to be called back by <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>. Used to create persistent Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s that continue to run and respond to input, while the user does other tasks. Identical to defer().<br>Note that no undo point will be automatically created when the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> finishes, unless you create it explicitly.<br><br><a name="eel_sign"><hr></a><br>
EEL: <code>sign(value)</code><br><br>Returns 1.0 if the parameter is greater than 0, -1.0 if the parameter is less than 0, or 0 if the parameter is 0.<br><br><a name="eel_sin"><hr></a><br>
EEL: <code>sin(angle)</code><br><br>Returns the sine of the angle specified (specified in radians -- to convert from degrees to radians, multiply by $pi/180, or 0.017453).<br><br><a name="eel_sleep"><hr></a><br>
EEL: <code>sleep(ms)</code><br><br>Yields the CPU for the millisecond count specified, calling Sleep() on Windows or usleep() on other platforms.<br><br><a name="eel_sprintf"><hr></a><br>
EEL: <code>sprintf(#dest,"format"[, ...])</code><br><br>Formats a string and stores it in #dest. Format specifiers begin with %, and may include:<ul><br><li> %% = %<br></li><li> %s = string from parameter<br></li><li> %d = parameter as integer<br></li><li> %i = parameter as integer<br></li><li> %u = parameter as unsigned integer<br></li><li> %x = parameter as hex (lowercase) integer<br></li><li> %X = parameter as hex (uppercase) integer<br></li><li> %c = parameter as character<br></li><li> %f = parameter as floating point<br></li><li> %e = parameter as floating point (scientific notation, lowercase)<br></li><li> %E = parameter as floating point (scientific notation, uppercase)<br></li><li> %g = parameter as floating point (shortest representation, lowercase)<br></li><li> %G = parameter as floating point (shortest representation, uppercase)<br></li></ul><br>Many standard C printf() modifiers can be used, including:<ul><br><li> %.10s = string, but only print up to 10 characters<br></li><li> %-10s = string, left justified to 10 characters<br></li><li> %10s = string, right justified to 10 characters<br></li><li> %+f = floating point, always show sign<br></li><li> %.4f = floating point, minimum of 4 digits after decimal point<br></li><li> %10d = integer, minimum of 10 digits (space padded)<br></li><li> %010f = integer, minimum of 10 digits (zero padded)<br></li></ul><br>Values for format specifiers can be specified as additional parameters to sprintf, or within {} in the format specifier (such as %{varname}d, in that case a global variable is always used).<br><br><a name="eel_sqr"><hr></a><br>
EEL: <code>sqr(value)</code><br><br>Returns the square of the parameter (similar to value*value, but only evaluating value once).<br><br><a name="eel_sqrt"><hr></a><br>
EEL: <code>sqrt(value)</code><br><br>Returns the square root of the parameter. If the parameter is negative, the return value is undefined.<br><br><a name="eel_stack_exch"><hr></a><br>
EEL: <code>stack_exch(&amp;value)</code><br><br>Exchanges a value with the top of the stack, and returns a reference to the parameter (with the new value).<br><br><a name="eel_stack_peek"><hr></a><br>
EEL: <code>stack_peek(index)</code><br><br>Returns a reference to the item on the top of the stack (if index is 0), or to the Nth item on the stack if index is greater than 0. <br><br><a name="eel_stack_pop"><hr></a><br>
EEL: <code>stack_pop(&amp;value)</code><br><br>Pops a value from the user stack into value, or into a temporary buffer if value is not specified, and returns a reference to where the stack was popped. Note that no checking is done to determine if the stack is empty, and as such stack_pop() will never fail.<br><br><a name="eel_stack_push"><hr></a><br>
EEL: <code>stack_push(&amp;value)</code><br><br>Pushes value onto the user stack, returns a reference to the parameter.<br><br><a name="eel_str_delsub"><hr></a><br>
EEL: <code>str_delsub(#str,pos,len)</code><br><br>Deletes len characters at offset pos from #str, and returns #str.<br><br><a name="eel_str_getchar"><hr></a><br>
EEL: <code>str_getchar("str",offset[,type])</code><br><br>Returns the data at byte-offset offset of str. If offset is negative, position is relative to end of string.type defaults to signed char, but can be specified to read raw binary data in other formats (note the single quotes, these are single/multi-byte characters):<ul><br><li>'c' - signed char<br></li><li>'cu' - unsigned char<br></li><li>'s' - signed short<br></li><li>'S' - signed short, big endian<br></li><li>'su' - unsigned short<br></li><li>'Su' - unsigned short, big endian<br></li><li>'i' - signed int<br></li><li>'I' - signed int, big endian<br></li><li>'iu' - unsigned int<br></li><li>'Iu' - unsigned int, big endian<br></li><li>'f' - float<br></li><li>'F' - float, big endian<br></li><li>'d' - double<br></li><li>'D' - double, big endian<br></li></ul><br><br><a name="eel_str_insert"><hr></a><br>
EEL: <code>str_insert(#str,"srcstr",pos)</code><br><br>Inserts srcstr into #str at offset pos. Returns #str<br><br><a name="eel_str_setchar"><hr></a><br>
EEL: <code>str_setchar(#str,offset,val[,type]))</code><br><br>Sets value at offset offset, type optional. offset may be negative to refer to offset relative to end of string, or between 0 and length, inclusive, and if set to length it will lengthen string. See <a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#str_getchar">str_getchar</a>() for more information on types.<br><br><a name="eel_str_setlen"><hr></a><br>
EEL: <code>str_setlen(#str,len)</code><br><br>Sets length of #str (if increasing, will be space-padded), and returns #str.<br><br><a name="eel_strcat"><hr></a><br>
EEL: <code>strcat(#str,"srcstr")</code><br><br>Appends srcstr to #str, and returns #str<br><br><a name="eel_strcmp"><hr></a><br>
EEL: <code>strcmp("str","str2")</code><br><br>Compares strings, returning 0 if equal<br><br><a name="eel_strcpy"><hr></a><br>
EEL: <code>strcpy(#str,"srcstr")</code><br><br>Copies the contents of srcstr to #str, and returns #str<br><br><a name="eel_strcpy_from"><hr></a><br>
EEL: <code>strcpy_from(#str,"srcstr",offset)</code><br><br>Copies srcstr to #str, but starts reading srcstr at offset offset<br><br><a name="eel_strcpy_substr"><hr></a><br>
EEL: <code>strcpy_substr(#str,"srcstr",offs,ml))</code><br><br>PHP-style (start at offs, offs&lt;0 means from end, ml for maxlen, ml&lt;0 = reduce length by this amt)<br><br><a name="eel_stricmp"><hr></a><br>
EEL: <code>stricmp("str","str2")</code><br><br>Compares strings ignoring case, returning 0 if equal<br><br><a name="eel_strlen"><hr></a><br>
EEL: <code>strlen("str")</code><br><br>Returns the length of the string passed as a parameter<br><br><a name="eel_strncat"><hr></a><br>
EEL: <code>strncat(#str,"srcstr",maxlen)</code><br><br>Appends srcstr to #str, stopping after maxlen characters of srcstr. Returns #str.<br><br><a name="eel_strncmp"><hr></a><br>
EEL: <code>strncmp("str","str2",maxlen)</code><br><br>Compares strings giving up after maxlen characters, returning 0 if equal<br><br><a name="eel_strncpy"><hr></a><br>
EEL: <code>strncpy(#str,"srcstr",maxlen)</code><br><br>Copies srcstr to #str, stopping after maxlen characters. Returns #str.<br><br><a name="eel_strnicmp"><hr></a><br>
EEL: <code>strnicmp("str","str2",maxlen)</code><br><br>Compares strings giving up after maxlen characters, ignoring case, returning 0 if equal<br><br><a name="eel_tan"><hr></a><br>
EEL: <code>tan(angle)</code><br><br>Returns the tangent of the angle specified (specified in radians).<br><br><a name="eel_tcp_close"><hr></a><br>
EEL: <code>tcp_close(connection)</code><br><br>Closes a TCP connection created by tcp_listen() or tcp_connect().<br><br><a name="eel_tcp_connect"><hr></a><br>
EEL: <code>tcp_connect("address",port[,block])</code><br><br>Create a new TCP connection to address:port. If block is specified and 0, connection will be made nonblocking. Returns TCP connection ID greater than 0 on success.<br><br><a name="eel_tcp_listen"><hr></a><br>
EEL: <code>tcp_listen(port[,"interface",#ip_out])</code><br><br>Listens on port specified. Returns less than 0 if could not listen, 0 if no new connection available, or greater than 0 (as a TCP connection ID) if a new connection was made. If a connection made and #ip_out specified, it will be set to the remote IP. interface can be empty for all interfaces, otherwise an interface IP as a string.<br><br><a name="eel_tcp_listen_end"><hr></a><br>
EEL: <code>tcp_listen_end(port)</code><br><br>Ends listening on port specified.<br><br><a name="eel_tcp_recv"><hr></a><br>
EEL: <code>tcp_recv(connection,#str[,maxlen])</code><br><br>Receives data from a connection to #str. If maxlen is specified, no more than maxlen bytes will be received. If non-blocking, 0 will be returned if would block. Returns less than 0 if error.<br><br><a name="eel_tcp_send"><hr></a><br>
EEL: <code>tcp_send(connection,"str"[,len])</code><br><br>Sends a string to connection. Returns -1 on error, 0 if connection is non-blocking and would block, otherwise returns length sent. If len is specified and not less than 1, only the first len bytes of the string parameter will be sent.<br><br><a name="eel_tcp_set_block"><hr></a><br>
EEL: <code>tcp_set_block(connection,block)</code><br><br>Sets whether a connection blocks.<br><br><a name="eel_time"><hr></a><br>
EEL: <code>time([&amp;val])</code><br><br>Sets the parameter (or a temporary buffer if omitted) to the number of seconds since January 1, 1970, and returns a reference to that value. The granularity of the value returned is 1 second.<br><br><a name="eel_time_precise"><hr></a><br>
EEL: <code>time_precise([&amp;val])</code><br><br>Sets the parameter (or a temporary buffer if omitted) to a system-local timestamp in seconds, and returns a reference to that value. The granularity of the value returned is system defined (but generally significantly smaller than one second).<br><br><a name="eel_while"><hr></a><br>
EEL: <code>while(expression)</code><br><br>Executes expression until expression evaluates to zero, or until 1048576iterations occur. An alternate and more useful syntax is while (expression) ( statements ), which evaluates statements after every non-zero evaluation of expression.<br><br></li></div><div class="l_funcs"><br><br><hr><br><h2>Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/Lua Built-In Function list</h2>
<a name="lua_atexit"><hr></a><br>
Lua: <code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.atexit(function)</code><br><br>
Adds code to be executed when the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> finishes or is ended by the user. Typically used to clean up after the user terminates defer() or runloop() code.<br><br>
<a name="lua_defer"><hr></a><br>
Lua: <code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.defer(function)</code><br><br>
Adds code to be called back by <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>. Used to create persistent Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s that continue to run and respond to input, while the user does other tasks. Identical to runloop().<br>Note that no undo point will be automatically created when the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> finishes, unless you create it explicitly.<br><br>
<a name="lua_get_action_context"><hr></a><br>
Lua: <code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.get_action_context()</code><br><br>
is_new_value,filename,sectionID,cmdID,mode,resolution,val = <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.get_action_context()<br>Returns contextual information about the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight>, typically MIDI/OSC input values.<br><br>val will be set to a relative or absolute value depending on mode (=0: absolute mode, &gt;0: relative modes). resolution=127 for 7-bit resolution, =16383 for 14-bit resolution.<br>Notes: sectionID, and cmdID will be set to -1 if the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> is not part of the action list. mode, resolution and val will be set to -1 if the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> was not triggered via MIDI/OSC.<br><br>
<a name="lua_gfx_variables"><hr></a><br>
Lua: <code>gfx VARIABLES</code><br><br>
The following global variables are special and will be used by the graphics system:<br><br><ul><li>gfx.r, gfx.g, gfx.b, gfx.a - These represent the current red, green, blue, and alpha components used by drawing operations (0.0..1.0). <br></li><li>gfx.w, gfx.h - These are set to the current width and height of the UI framebuffer. <br></li><li>gfx.x, gfx.y - These set the "current" graphics position in x,y. You can set these yourselves, and many of the drawing functions update them as well. <br></li><li>gfx.mode - Set to 0 for default options. Add 1.0 for additive blend mode (if you wish to do subtractive, set gfx.a to negative and use gfx.mode as additive). Add 2.0 to disable source alpha for gfx.blit(). Add 4.0 to disable filtering for gfx.blit(). <br></li><li>gfx.clear - If set to a value greater than -1.0, this will result in the framebuffer being cleared to that color. the color for this one is packed RGB (0..255), i.e. red+green*256+blue*65536. The default is 0 (black). <br></li><li>gfx.dest - Defaults to -1, set to 0..1024-1 to have drawing operations go to an offscreen buffer (or loaded image).<br></li><li>gfx.texth - Set to the height of a line of text in the current font. Do not modify this variable.<br></li><li>gfx.ext_retina - If set to 1.0 on initialization, will be updated to 2.0 if high resolution display is supported, and if so gfx.w/gfx.h/etc will be doubled.<br></li><li>gfx.mouse_x, gfx.mouse_y - gfx.mouse_x and gfx.mouse_y are set to the coordinates of the mouse relative to the graphics window.<br></li><li>gfx.mouse_wheel, gfx.mouse_hwheel - mouse wheel (and horizontal wheel) positions. These will change typically by 120 or a multiple thereof, the caller should clear the state to 0 after reading it.</li><li>gfx.mouse_cap is a bitfield of mouse and keyboard modifier state.<ul><li>1: left mouse button<br></li><li>2: right mouse button<br></li><li>4: Command key<br></li><li>8: Shift key<br></li><li>16: Option key<br></li><li>32: Control key<br></li><li>64: middle mouse button<br></li></ul></li></ul><br><br>
<a name="lua_gfx.arc"><hr></a><br>
Lua: <code>gfx.arc(x,y,r,ang1,ang2[,antialias])</code><br><br>
Draws an arc of the circle centered at x,y, with ang1/ang2 being specified in radians.<br><br>
<a name="lua_gfx.blit"><hr></a><br>
Lua: <code>gfx.blit(source, scale, rotation[, srcx, srcy, srcw, srch, destx, desty, destw, desth, rotxoffs, rotyoffs])</code><br><br>
srcx/srcy/srcw/srch specify the source rectangle (if omitted srcw/srch default to image size), destx/desty/destw/desth specify dest rectangle (if not specified, these will default to reasonable defaults -- destw/desth default to srcw/srch * scale). <br><br>
<a name="lua_gfx.blit"><hr></a><br>
Lua: <code>gfx.blit(source,scale,rotation)</code><br><br>
If three parameters are specified, copies the entirity of the source bitmap to gfx.x,gfx.y using current opacity and copy mode (set with gfx.a, gfx.mode). You can specify scale (1.0 is unscaled) and rotation (0.0 is not rotated, angles are in radians).<br>For the "source" parameter specify -1 to use the main framebuffer as source, or an image index (see gfx.loadimg()).<br><br>
<a name="lua_gfx.blitext"><hr></a><br>
Lua: <code>gfx.blitext(source,coordinatelist,rotation)</code><br><br>
Deprecated, use gfx.blit instead.<br><br>
<a name="lua_gfx.blurto"><hr></a><br>
Lua: <code>gfx.blurto(x,y)</code><br><br>
Blurs the region of the screen between gfx.x,gfx.y and x,y, and updates gfx.x,gfx.y to x,y.<br><br>
<a name="lua_gfx.circle"><hr></a><br>
Lua: <code>gfx.circle(x,y,r[,fill,antialias])</code><br><br>
Draws a circle, optionally filling/antialiasing. <br><br>
<a name="lua_gfx.clienttoscreen"><hr></a><br>
Lua: <code>gfx.clienttoscreen(x,y)</code><br><br>
Converts the coordinates x,y to screen coordinates, returns those values.<br><br>
<a name="lua_gfx.deltablit"><hr></a><br>
Lua: <code>gfx.deltablit(srcimg,srcs,srct,srcw,srch,destx,desty,destw,desth,dsdx,dtdx,dsdy,dtdy,dsdxdy,dtdxdy[,usecliprect=1])</code><br><br>
Blits from srcimg(srcx,srcy,srcw,srch) to destination (destx,desty,destw,desth). Source texture coordinates are s/t, dsdx represents the change in s coordinate for each x pixel, dtdy represents the change in t coordinate for each y pixel, etc. dsdxdy represents the change in dsdx for each line. If usecliprect is specified and 0, then srcw/srch are ignored.<br><br>
<a name="lua_gfx.dock"><hr></a><br>
Lua: <code>gfx.dock(v[,wx,wy,ww,wh])</code><br><br>
Call with v=-1 to query docked state, otherwise v&gt;=0 to set docked state. State is &amp;1 if docked, second byte is docker index (or last docker index if undocked). If wx-wh specified, additional values will be returned with the undocked window position/size<br><br>
<a name="lua_gfx.drawchar"><hr></a><br>
Lua: <code>gfx.drawchar(char)</code><br><br>
Draws the character (can be a numeric ASCII code as well), to gfx.x, gfx.y, and moves gfx.x over by the size of the character.<br><br>
<a name="lua_gfx.drawnumber"><hr></a><br>
Lua: <code>gfx.drawnumber(n,ndigits)</code><br><br>
Draws the number n with ndigits of precision to gfx.x, gfx.y, and updates gfx.x to the right side of the drawing. The text height is gfx.texth.<br><br>
<a name="lua_gfx.drawstr"><hr></a><br>
Lua: <code>gfx.drawstr("str"[,flags,right,bottom])</code><br><br>
Draws a string at gfx.x, gfx.y, and updates gfx.x/gfx.y so that subsequent draws will occur in a similar place.<br><br>If flags, right ,bottom passed in:<br><li>flags&amp;1: center horizontally<br></li><li>flags&amp;2: right justify<br></li><li>flags&amp;4: center vertically<br></li><li>flags&amp;8: bottom justify<br></li><li>flags&amp;256: ignore right/bottom, otherwise text is clipped to (gfx.x, gfx.y, right, bottom)<br><br>
<a name="lua_gfx.getchar"><hr></a><br>
Lua: <code>gfx.getchar([char])</code><br><br>
If char is 0 or omitted, returns a character from the keyboard queue, or 0 if no character is available, or -1 if the graphics window is not open. If char is specified and nonzero, that character's status will be checked, and the function will return greater than 0 if it is pressed.<br><br>Common values are standard ASCII, such as 'a', 'A', '=' and '1', but for many keys multi-byte values are used, including 'home', 'up', 'down', 'left', 'rght', 'f1'.. 'f12', 'pgup', 'pgdn', 'ins', and 'del'. <br><br>Modified and special keys can also be returned, including:<ul><br><li>Ctrl/Cmd+A..Ctrl+Z as 1..26<br></li><li>Ctrl/Cmd+Alt+A..Z as 257..282<br></li><li>Alt+A..Z as 'A'+256..'Z'+256<br></li><li>27 for ESC<br></li><li>13 for Enter<br></li><li>' ' for space<br></li><li>65536 for query of special flags, returns: &amp;1 (supported), &amp;2=window has focus, &amp;4=window is visible<br></li></ul><br><br>
<a name="lua_gfx.getdropfile"><hr></a><br>
Lua: <code>gfx.getdropfile(idx)</code><br><br>
Returns success,string for dropped file index idx. call gfx.dropfile(-1) to clear the list when finished.<br><br>
<a name="lua_gfx.getfont"><hr></a><br>
Lua: <code>gfx.getfont()</code><br><br>
Returns current font index, and the actual font face used by this font (if available).<br><br>
<a name="lua_gfx.getimgdim"><hr></a><br>
Lua: <code>gfx.getimgdim(handle)</code><br><br>
Retreives the dimensions of an image specified by handle, returns w, h pair.<br><br>
<a name="lua_gfx.getpixel"><hr></a><br>
Lua: <code>gfx.getpixel()</code><br><br>
Returns r,g,b values [0..1] of the pixel at (gfx.x,gfx.y)<br><br>
<a name="lua_gfx.gradrect"><hr></a><br>
Lua: <code>gfx.gradrect(x,y,w,h, r,g,b,a[, drdx, dgdx, dbdx, dadx, drdy, dgdy, dbdy, dady])</code><br><br>
Fills a gradient rectangle with the color and alpha specified. drdx-dadx reflect the adjustment (per-pixel) applied for each pixel moved to the right, drdy-dady are the adjustment applied for each pixel moved toward the bottom. Normally drdx=adjustamount/w, drdy=adjustamount/h, etc.<br><br>
<a name="lua_gfx.init"><hr></a><br>
Lua: <code>gfx.init("name"[,width,height,dockstate,xpos,ypos])</code><br><br>
Initializes the graphics window with title name. Suggested width and height can be specified.<br><br>Once the graphics window is open, gfx.update() should be called periodically. <br><br>
<a name="lua_gfx.line"><hr></a><br>
Lua: <code>gfx.line(x,y,x2,y2[,aa])</code><br><br>
Draws a line from x,y to x2,y2, and if aa is not specified or 0.5 or greater, it will be antialiased. <br><br>
<a name="lua_gfx.lineto"><hr></a><br>
Lua: <code>gfx.lineto(x,y[,aa])</code><br><br>
Draws a line from gfx.x,gfx.y to x,y. If aa is 0.5 or greater, then antialiasing is used. Updates gfx.x and gfx.y to x,y.<br><br>
<a name="lua_gfx.loadimg"><hr></a><br>
Lua: <code>gfx.loadimg(image,"filename")</code><br><br>
Load image from filename into slot 0..1024-1 specified by image. Returns the image index if success, otherwise -1 if failure. The image will be resized to the dimensions of the image file. <br><br>
<a name="lua_gfx.measurechar"><hr></a><br>
Lua: <code>gfx.measurechar(char)</code><br><br>
Measures the drawing dimensions of a character with the current font (as set by gfx.setfont). Returns width and height of character.<br><br>
<a name="lua_gfx.measurestr"><hr></a><br>
Lua: <code>gfx.measurestr("str")</code><br><br>
Measures the drawing dimensions of a string with the current font (as set by gfx.setfont). Returns width and height of string.<br><br>
<a name="lua_gfx.muladdrect"><hr></a><br>
Lua: <code>gfx.muladdrect(x,y,w,h,mul_r,mul_g,mul_b[,mul_a,add_r,add_g,add_b,add_a])</code><br><br>
Multiplies each pixel by mul_* and adds add_*, and updates in-place. Useful for changing brightness/contrast, or other effects.<br><br>
<a name="lua_gfx.printf"><hr></a><br>
Lua: <code>gfx.printf("format"[, ...])</code><br><br>
Formats and draws a string at gfx.x, gfx.y, and updates gfx.x/gfx.y accordingly (the latter only if the formatted string contains newline). For more information on format strings, see sprintf()<br><br>
<a name="lua_gfx.quit"><hr></a><br>
Lua: <code>gfx.quit()</code><br><br>
Closes the graphics window.<br><br>
<a name="lua_gfx.rect"><hr></a><br>
Lua: <code>gfx.rect(x,y,w,h[,filled])</code><br><br>
Fills a rectangle at x,y, w,h pixels in dimension, filled by default. <br><br>
<a name="lua_gfx.rectto"><hr></a><br>
Lua: <code>gfx.rectto(x,y)</code><br><br>
Fills a rectangle from gfx.x,gfx.y to x,y. Updates gfx.x,gfx.y to x,y. <br><br>
<a name="lua_gfx.roundrect"><hr></a><br>
Lua: <code>gfx.roundrect(x,y,w,h,radius[,antialias])</code><br><br>
Draws a rectangle with rounded corners. <br><br>
<a name="lua_gfx.screentoclient"><hr></a><br>
Lua: <code>gfx.screentoclient(x,y)</code><br><br>
Converts the screen coordinates x,y to client coordinates, returns those values.<br><br>
<a name="lua_gfx.set"><hr></a><br>
Lua: <code>gfx.set(r[,g,b,a,mode,dest])</code><br><br>
Sets gfx.r/gfx.g/gfx.b/gfx.a/gfx.mode, sets gfx.dest if final parameter specified<br><br>
<a name="lua_gfx.setcursor"><hr></a><br>
Lua: <code>gfx.setcursor(resource_id,custom_cursor_name)</code><br><br>
Sets the mouse cursor. resource_id is a value like 32512 (for an arrow cursor), custom_cursor_name is a string like "arrow" (for the <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight> custom arrow cursor). resource_id must be nonzero, but custom_cursor_name is optional.<br><br>
<a name="lua_gfx.setfont"><hr></a><br>
Lua: <code>gfx.setfont(idx[,"fontface", sz, flags])</code><br><br>
Can select a font and optionally configure it. idx=0 for default bitmapped font, no configuration is possible for this font. idx=1..16 for a configurable font, specify fontface such as "Arial", sz of 8-100, and optionally specify flags, which is a multibyte character, which can include 'i' for italics, 'u' for underline, or 'b' for bold. These flags may or may not be supported depending on the font and OS. After calling gfx.setfont(), gfx.texth may be updated to reflect the new average line height.<br><br>
<a name="lua_gfx.setimgdim"><hr></a><br>
Lua: <code>gfx.setimgdim(image,w,h)</code><br><br>
Resize image referenced by index 0..1024-1, width and height must be 0-2048. The contents of the image will be undefined after the resize.<br><br>
<a name="lua_gfx.setpixel"><hr></a><br>
Lua: <code>gfx.setpixel(r,g,b)</code><br><br>
Writes a pixel of r,g,b to gfx.x,gfx.y.<br><br>
<a name="lua_gfx.showmenu"><hr></a><br>
Lua: <code>gfx.showmenu("str")</code><br><br>
Shows a popup menu at gfx.x,gfx.y. str is a list of fields separated by | characters. Each field represents a menu item.<br>Fields can start with special characters:<br><br># : grayed out<br>! : checked<br>&gt; : this menu item shows a submenu<br>&lt; : last item in the current submenu<br><br>An empty field will appear as a separator in the menu. gfx.showmenu returns 0 if the user selected nothing from the menu, 1 if the first field is selected, etc.<br>Example:<br><br>gfx.showmenu("first item, followed by separator||!second item, checked|&gt;third item which spawns a submenu|#first item in submenu, grayed out|&lt;second and last item in submenu|fourth item in top menu")<br><br>
<a name="lua_gfx.transformblit"><hr></a><br>
Lua: <code>gfx.transformblit(srcimg,destx,desty,destw,desth,div_w,div_h,table)</code><br><br>
Blits to destination at (destx,desty), size (destw,desth). div_w and div_h should be 2..64, and table should point to a table of 2*div_w*div_h values (table can be a regular table or (for less overhead) a <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array). Each pair in the table represents a S,T coordinate in the source image, and the table is treated as a left-right, top-bottom list of texture coordinates, which will then be rendered to the destination.<br><br>
<a name="lua_gfx.triangle"><hr></a><br>
Lua: <code>gfx.triangle(x1,y1,x2,y2,x3,y3[x4,y4...])</code><br><br>
Draws a filled triangle, or any convex polygon. <br><br>
<a name="lua_gfx.update"><hr></a><br>
Lua: <code>gfx.update()</code><br><br>
Updates the graphics display, if opened<br><br>
<a name="lua_new_array"><hr></a><br>
Lua: <code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.new_array([table|array][size])</code><br><br>
Creates a new <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array object of maximum and initial size size, if specified, or from the size/values of a table/array. Both size and table/array can be specified, the size parameter will override the table/array size.<br><br>
<a name="lua_runloop"><hr></a><br>
Lua: <code><xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.runloop(function)</code><br><br>
Adds code to be called back by <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>. Used to create persistent Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s that continue to run and respond to input, while the user does other tasks. Identical to defer().<br>Note that no undo point will be automatically created when the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> finishes, unless you create it explicitly.<br><br>
<a name="lua_{reaper.array}.clear"><hr></a><br>
Lua: <code>{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.clear([value, offset, size])</code><br><br>
Sets the value of zero or more items in the array. If value not specified, 0.0 is used. offset is 1-based, if size omitted then the maximum amount available will be set.<br><br>
<a name="lua_{reaper.array}.convolve"><hr></a><br>
Lua: <code>{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.convolve([src, srcoffs, size, destoffs])</code><br><br>
Convolves complex value pairs from <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array, starting at 1-based srcoffs, reading/writing to 1-based destoffs. size is in normal items (so it must be even)<br><br>
<a name="lua_{reaper.array}.copy"><hr></a><br>
Lua: <code>{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.copy([src, srcoffs, size, destoffs])</code><br><br>
Copies values from <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array or table, starting at 1-based srcoffs, writing to 1-based destoffs.<br><br>
<a name="lua_{reaper.array}.fft"><hr></a><br>
Lua: <code>{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.fft(size[, permute, offset])</code><br><br>
Performs a forward FFT of size. size must be a power of two between 4 and 32768 inclusive. If permute is specified and true, the values will be shuffled following the FFT to be in normal order.<br><br>
<a name="lua_{reaper.array}.fft_real"><hr></a><br>
Lua: <code>{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.fft_real(size[, permute, offset])</code><br><br>
Performs a forward real-&gt;complex FFT of size. size must be a power of two between 4 and 32768 inclusive. If permute is specified and true, the values will be shuffled following the FFT to be in normal order.<br><br>
<a name="lua_{reaper.array}.get_alloc"><hr></a><br>
Lua: <code>{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.get_alloc()</code><br><br>
Returns the maximum (allocated) size of the array.<br><br>
<a name="lua_{reaper.array}.ifft"><hr></a><br>
Lua: <code>{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.ifft(size[, permute, offset])</code><br><br>
Performs a backwards FFT of size. size must be a power of two between 4 and 32768 inclusive. If permute is specified and true, the values will be shuffled before the IFFT to be in fft-order.<br><br>
<a name="lua_{reaper.array}.ifft_real"><hr></a><br>
Lua: <code>{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.ifft_real(size[, permute, offset])</code><br><br>
Performs a backwards complex-&gt;real FFT of size. size must be a power of two between 4 and 32768 inclusive. If permute is specified and true, the values will be shuffled before the IFFT to be in fft-order.<br><br>
<a name="lua_{reaper.array}.multiply"><hr></a><br>
Lua: <code>{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.multiply([src, srcoffs, size, destoffs])</code><br><br>
Multiplies values from <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array, starting at 1-based srcoffs, reading/writing to 1-based destoffs.<br><br>
<a name="lua_{reaper.array}.resize"><hr></a><br>
Lua: <code>{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.resize(size)</code><br><br>
Resizes an array object to size. size must be [0..max_size].<br><br>
<a name="lua_{reaper.array}.table"><hr></a><br>
Lua: <code>{<xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">reaper</xhighlight>.array}.table([offset, size])</code><br><br>
Returns a new table with values from items in the array. Offset is 1-based and if size is omitted all available values are used.<br><br>
</li></div><div class="p_funcs"><br><br><hr><br><h2>Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>/Python Built-In Function list</h2>
<a name="python_atexit"><hr></a><br>
Python: <code>RPR_atexit(String)</code><br><br>
Adds code to be executed when the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> finishes or is ended by the user. Typically used to clean up after the user terminates defer() or runloop() code.<br><br>
<a name="python_defer"><hr></a><br>
Python: <code>RPR_defer(String code)</code><br><br>
Adds code to be called back by <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>. Used to create persistent Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s that continue to run and respond to input, while the user does other tasks. Identical to runloop().<br>Note that no undo point will be automatically created when the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> finishes, unless you create it explicitly.<br><br>
<a name="python_runloop"><hr></a><br>
Python: <code>RPR_runloop(String code)</code><br><br>
Adds code to be called back by <xhighlight class="THmo acWHSet" data="reaper" txhidy15="acWHSet">REAPER</xhighlight>. Used to create persistent Rea<xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">Script</xhighlight>s that continue to run and respond to input, while the user does other tasks. Identical to defer().<br>Note that no undo point will be automatically created when the <xhighlight class="THmo acWHSet" data="script" txhidy15="acWHSet">script</xhighlight> finishes, unless you create it explicitly.<br><br>
</div>View: 
[<span class="aclick">all</span>] [<span class="cclick"><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#c" onclick="setdocview(&#39;c&#39;)">C/C++</a></span>] [<span class="eclick"><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#e" onclick="setdocview(&#39;e&#39;)">EEL</a></span>] [<span class="lclick"><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#l" onclick="setdocview(&#39;l&#39;)">Lua</a></span>] [<span class="pclick"><a href="https://www.reaper.fm/sdk/reascript/reascripthelp.html#p" onclick="setdocview(&#39;p&#39;)">Python</a></span>]<br>

<div class="nsc-panel nsc-panel-compact nsc-hide">
    <div class="nsc-panel-move"></div>
    <div class="nsc-panel-tooltip">
        <div class="nsc-panel-tooltip-layout" layout="row" layout-align="start center">CTRL+V to toggle the panel</div>
    </div>

    <div class="nsc-panel-layout" flex="" layout="row" layout-align="start center">
        <div class="nsc-panel-groups" flex="" layout="row" layout-align="start start">

            <!-- group -->
            <div class="nsc-panel-group" flex="none" layout="row" layout-align="start start">
                <div class="nsc-panel-button separated active">
                    <div class="nsc-panel-select" flex="" layout="row">
                        <div class="nsc-panel-text nsc-noselect" flex="" layout="row" layout-align="center center">
                            <span class="nsc-icon nsc-icon-cursor-normal" data-i18n="videoPanelSimpleCursor" data-event="nimbus-editor-active-tools" data-event-param="cursorRing">&nbsp;</span>
                        </div>
                        <div class="nsc-panel-trigger">
                            <span class="nsc-icon nsc-icon-arrow">&nbsp;</span>
                        </div>
                    </div>
                    <div class="nsc-panel-dropdown to-top">
                        <ul flex="" layout="row" layout-align="start center">
                            <li class="nsc-panel-dropdown-icon" flex="" layout="row" layout-align="start center">
                                <span class="nsc-icon nsc-icon-cursor-shade" data-i18n="videoPanelFocusMouse" data-event="nimbus-editor-active-tools" data-event-param="cursorShadow">&nbsp;</span>
                            </li>
                            <li class="nsc-panel-dropdown-icon" flex="" layout="row" layout-align="start center">
                                <span class="nsc-icon nsc-icon-cursor-circle" data-i18n="videoPanelAnimatedCursor" data-event="nimbus-editor-active-tools" data-event-param="cursorRing">&nbsp;</span>
                            </li>
                            <!--<li class="nsc-panel-dropdown-icon " flex layout="row" layout-align="start center">-->
                            <!--<span class="nsc-icon nsc-icon-cursor-tail"></span>-->
                            <!--</li>-->
                            <!--<li class="nsc-panel-dropdown-icon " flex layout="row" layout-align="start center">-->
                            <!--<span class="nsc-icon nsc-icon-cursor-long"></span>-->
                            <!--</li>-->
                            <li class="nsc-panel-dropdown-icon" flex="" layout="row" layout-align="start center">
                                <span class="nsc-icon nsc-icon-cursor-normal" data-i18n="videoPanelSimpleCursor" data-event="nimbus-editor-active-tools" data-event-param="cursorDefault">&nbsp;</span>
                            </li>
                            <!--<li class="nsc-panel-dropdown-icon" flex layout="row" layout-align="start center">-->
                            <!--<span class="nsc-icon nsc-icon-cursor-none" data-event="nimbus-editor-active-tools" data-event-param="cursorNone"></span>-->
                            <!--</li>-->
                        </ul>
                    </div>
                </div>
            </div>
            <!-- /group -->

            <!-- group -->
            <div class="nsc-panel-group" flex="none" layout="row" layout-align="start start">
                <button class="nsc-panel-button" type="button">
                    <span class="nsc-icon nsc-icon-pen" data-i18n="videoPanelPen" data-event="nimbus-editor-active-tools" data-event-param="pen">&nbsp;</span>
                </button>
                <button class="nsc-panel-button" type="button">
                    <span class="nsc-icon nsc-icon-arrow-line" data-i18n="videoPanelArrow" data-event="nimbus-editor-active-tools" data-event-param="arrow">&nbsp;</span>
                </button>
                <button class="nsc-panel-button" type="button">
                    <span class="nsc-icon nsc-icon-square" data-i18n="videoPanelSquare" data-event="nimbus-editor-active-tools" data-event-param="square">&nbsp;</span>
                </button>
                <div class="nsc-panel-button separated">
                    <div class="nsc-panel-select" flex="" layout="row">
                        <div class="nsc-panel-text nsc-noselect" flex="" layout="row" layout-align="center center">
                            <span class="nsc-icon nsc-icon-attention" data-i18n="videoPanelMark" data-event="nimbus-editor-active-tools" data-event-param="notifRed">&nbsp;</span>
                        </div>
                        <div class="nsc-panel-trigger">
                            <span class="nsc-icon nsc-icon-arrow">&nbsp;</span>
                        </div>
                    </div>
                    <div class="nsc-panel-dropdown to-top">
                        <ul flex="" layout="row" layout-align="start center">
                            <li class="nsc-panel-dropdown-icon" flex="" layout="row" layout-align="start center">
                                <span class="nsc-icon nsc-icon-attention" data-i18n="videoPanelMark" data-event="nimbus-editor-active-tools" data-event-param="notifRed">&nbsp;</span>
                            </li>
                            <li class="nsc-panel-dropdown-icon" flex="" layout="row" layout-align="start center">
                                <span class="nsc-icon nsc-icon-question" data-i18n="videoPanelQuestion" data-event="nimbus-editor-active-tools" data-event-param="notifBlue">&nbsp;</span>
                            </li>
                            <li class="nsc-panel-dropdown-icon" flex="" layout="row" layout-align="start center">
                                <span class="nsc-icon nsc-icon-done" data-i18n="videoPanelCheckmark" data-event="nimbus-editor-active-tools" data-event-param="notifGreen">&nbsp;</span>
                            </li>
                        </ul>
                    </div>
                </div>
                <div class="nsc-panel-button assembled">
                    <div class="nsc-panel-select" flex="" layout="row">
                        <div class="nsc-panel-text nsc-noselect" flex="" layout="row" layout-align="center center">
							<span class="nsc-icon nsc-icon-fill-none nsc-panel-icon-fill">
								<span class="nsc-panel-icon-fill-inner" id="nsc_panel_button_colors" style="background:#00FF00;" data-event="nimbus-editor-active-color" data-event-param="#00FF00">&nbsp;</span>
							</span>
                        </div>
                        <div class="nsc-panel-trigger">
                            <span class="nsc-icon nsc-icon-arrow">&nbsp;</span>
                        </div>
                    </div>
                    <div class="nsc-panel-dropdown">
                        <div class="nsc-panel-drop-area">
                            <div class="nsc-panel-colors">

                                <!-- picked -->
                                <div class="nsc-colors-picked">
                                    <div class="nsc-colors-picked-layout" flex="" layout="row" layout-align="start start" layout-wrap="">
                                        <div class="nsc-colors-picked-item">
                                            <button class="nsc-colors-picked-button" type="button" data-event="nimbus-editor-active-color" data-event-param="#000000">
                                                <span class="nsc-colors-picked-button-inner" style="background: #000000;">&nbsp;</span>
                                            </button>
                                        </div>
                                        <div class="nsc-colors-picked-item">
                                            <button class="nsc-colors-picked-button" type="button" data-event="nimbus-editor-active-color" data-event-param="#0000FF">
                                                <span class="nsc-colors-picked-button-inner" style="background: #0000FF;">&nbsp;</span>
                                            </button>
                                        </div>
                                        <div class="nsc-colors-picked-item">
                                            <button class="nsc-colors-picked-button" type="button" data-event="nimbus-editor-active-color" data-event-param="#FF00FF">
                                                <span class="nsc-colors-picked-button-inner" style="background: #FF00FF;">&nbsp;</span>
                                            </button>
                                        </div>
                                        <div class="nsc-colors-picked-item">
                                            <button class="nsc-colors-picked-button" type="button" data-event="nimbus-editor-active-color" data-event-param="#00FFFF">
                                                <span class="nsc-colors-picked-button-inner" style="background: #00FFFF;">&nbsp;</span>
                                            </button>
                                        </div>
                                        <div class="nsc-colors-picked-item">
                                            <button class="nsc-colors-picked-button" type="button" data-event="nimbus-editor-active-color" data-event-param="#00FF00">
                                                <span class="nsc-colors-picked-button-inner" style="background: #00FF00;">&nbsp;</span>
                                            </button>
                                        </div>
                                        <div class="nsc-colors-picked-item">
                                            <button class="nsc-colors-picked-button" type="button" data-event="nimbus-editor-active-color" data-event-param="#FFFF00">
                                                <span class="nsc-colors-picked-button-inner" style="background: #FFFF00;">&nbsp;</span>
                                            </button>
                                        </div>
                                        <div class="nsc-colors-picked-item">
                                            <button class="nsc-colors-picked-button" type="button" data-event="nimbus-editor-active-color" data-event-param="#FF0000">
                                                <span class="nsc-colors-picked-button-inner" style="background: #FF0000;">&nbsp;</span>
                                            </button>
                                        </div>
                                        <div class="nsc-colors-picked-item">
                                            <button class="nsc-colors-picked-button" type="button" data-event="nimbus-editor-active-color" data-event-param="#FFFFFF">
                                                <span class="nsc-colors-picked-button-inner" style="background: #FFFFFF;">&nbsp;</span>
                                            </button>
                                        </div>
                                        <!--<div class="nsc-colors-picked-item">-->
                                        <!--<button class="nsc-colors-picked-button custom" type="button"> -->
                                        <!--<i class="nsc-icon ic-color-custom"></i> -->
                                        <!--</button>-->
                                        <!--</div>-->
                                    </div>
                                </div>
                                <!-- /picked -->
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <!-- /group -->

            <!-- group -->
            <div class="nsc-panel-group" flex="none" layout="row" layout-align="start start">
                <button class="nsc-panel-button nsc-hide" type="button">
                    <span class="nsc-icon nsc-icon-eraser" data-i18n="videoPanelClear" data-event="nimbus-editor-active-tools" data-event-param="clear">&nbsp;</span>
                </button>
                <button class="nsc-panel-button" type="button">
                    <span class="nsc-icon nsc-icon-eraser-all" data-i18n="videoPanelClearAll" data-event="nimbus-editor-active-tools" data-event-param="clearAll">&nbsp;</span>
                </button>
                <button class="nsc-panel-button" type="button">
                    <span class="nsc-icon nsc-icon-webcam" data-i18n="videoPanelCamera" id="nimbus_web_camera_toggle">&nbsp;</span>
                </button>
            </div>
            <!-- /group -->
        </div>

        <div class="nsc-panel-actions" flex="none" layout="row" layout-align="start center">
            <button class="nsc-panel-button big" type="button" id="nsc_panel_button_play" style="display: none;">
                <span class="nsc-icon nsc-icon-play">&nbsp;</span>
            </button>
            <button class="nsc-panel-button big" type="button" id="nsc_panel_button_pause">
                <span class="nsc-icon nsc-icon-pause">&nbsp;</span>
            </button>
            <button class="nsc-panel-button big" type="button" id="nsc_panel_button_stop">
                <span class="nsc-icon nsc-icon-stop">&nbsp;</span>
            </button>
        </div>

        <!-- panel togglers -->
        <div class="nsc-panel-togglers" layout="row" layout-align="start center" flex="none">
            <button class="nsc-panel-toggle-button" type="button">
                <span class="nsc-icon nsc-icon-panel-close" data-i18n="videoPanelHideShowPanel">&nbsp;</span>
            </button>
        </div>
        <!-- /panel togglers -->

    </div>
</div>
<div class="nsc-video-editor nsc-hide events" style="width: 1269px; height: 160458px;"><canvas width="1269" height="160458" style="width: 1269px; height: 160458px; position: absolute; top: 0px; left: 0px; z-index: 0;"></canvas><canvas width="1269" height="160458" style="width: 1269px; height: 160458px; position: absolute; top: 0px; left: 0px; z-index: 1;"></canvas><canvas width="1269" height="160458" style="width: 1269px; height: 160458px; position: absolute; top: 0px; left: 0px; z-index: 2;"></canvas></div><div class="nsc-content-camera nsc-hide" style="top: 0px; left: 0px;">
    <div class="nsc-content-camera-buttons" flex="none" layout="row" layout-align="start start">
        <button class="nsc-content-camera-button" type="button" id="nsc_video_camera_collapse" style="display: none">
            <span class="nsc-icon nsc-icon-panel-collapse"></span>
        </button>
        <button class="nsc-content-camera-button" type="button" id="nsc_video_camera_expand">
            <span class="nsc-icon nsc-icon-panel-expand"></span>
        </button>
        <button class="nsc-content-camera-button" type="button" id="nsc_video_camera_close">
            <span class="nsc-icon nsc-icon-panel-close"></span>
        </button>
    </div>
    <div class="nsc-content-camera-container">
        <div class="nsc-content-camera-shadow"></div>
    </div>
</div>
</body></html>